Java/OOP

실습

yunajoe 2022. 10. 8. 13:21

평균값 계산기

// 리턴값의 자료형은 double 
// 메소드는 computeAverage
// 파라미터로 int 배열 intArray를 받음


// Average.java 
public class Average {
    double computeAverage(int[] intArray){
        int total = 0;
       for(int i=0; i < intArray.length; i++){
            total = total + intArray[i];
       }
       return (double) total /intArray.length;
    }
}

// AverageMain.java
public class AverageMain {
    public static void main(String[] args) {
        Average finder = new Average();

        int[] testArray1 = {3,7,3};
        System.out.println(finder.computeAverage(testArray1));

        int[] testArray2 = {1,3,4,7};
        System.out.println(finder.computeAverage(testArray2));

        int[] testArray3 = {4};
        System.out.println(finder.computeAverage(testArray3));

        int[] testArray4 = {1,2,3,4,5};
        System.out.println(finder.computeAverage(testArray4));

    }
}

// 실행결과   
4.333333333333333
3.75
4.0
3.0

두 원소의 차 중 최댓값 구하기

// GreatestDifferenceFinder.java

public class GreatestDifferenceFinder {
    int greatestDifference(int[] intArray) {
        // 코드를 입력하세요. 
        
        // max_number, min_number의 위치가 아래아 같을 때는 오류가 난다 
        //int max_number = intArray[0];
        //int min_number = intArray[0];
     
        if (intArray.length < 2){
                return 0;   
       }
        
        int max_number = intArray[0];
        int min_number = intArray[0];
     
        for(int i = 0; i <intArray.length; i++){
            if(intArray[i] > max_number){
                max_number = intArray[i];
            }
            
            if(min_number > intArray[i]){
                min_number = intArray[i];
            } 
        }  
        return max_number - min_number;  
    
    }
}



// GreatestDifferenceFinderMain.java

public class Main {
    public static void main(String[] args) {
        GreatestDifferenceFinder finder = new GreatestDifferenceFinder();

        // 테스트 1
        int[] testArray1 = {-2, 7, 3};
        System.out.println(finder.greatestDifference(testArray1));

        // 테스트 2
        int[] testArray2 = {8, 3, 14, 1};
        System.out.println(finder.greatestDifference(testArray2));

        // 테스트 3
        int[] testArray3 = {4, 2, 3, 1};
        System.out.println(finder.greatestDifference(testArray3));

        // 테스트 4
        int[] testArray4 = {};
        System.out.println(finder.greatestDifference(testArray4));

        // 테스트 5
        int[] testArray5 = {1, 2, -3, 4, 5};
        System.out.println(finder.greatestDifference(testArray5));

        // 테스트 6
        int[] testArray6 = {1};
        System.out.println(finder.greatestDifference(testArray6));
    }
}

// 결과 

9
13
3
0
8
0

==================================================================
+ else를 붙여보았당
public class GreatestDifference {
    int greatestDifference(int[] intArray) {

        if (intArray.length < 2) {
            return 0;
        } else {
            int max_number = intArray[0];
            int min_number = intArray[0];

            for (int i = 0; i < intArray.length; i++) {
                if (intArray[i] > max_number) {
                    max_number = intArray[i];
                } else if (intArray[i] < min_number) {
                    min_number = intArray[i];
                }
            }
            return max_number - min_number;
        }
    }
}

아래처럼 

  int max_number = intArray[0];
  int min_number = intArray[0]; 

를 < 2 에다가 주면은 ArrayIndexOutOfBoundsException 에러가 난다. 왜냐하면 빈배열도 있기 때문에!

public class GreatestDifference {
    int greatestDifference(int[] intArray){
        int max_number = intArray[0];
        int min_number = intArray[0];
        if (intArray.length < 2){
            return 0;
        }

별찍기 

- 자바는 문자열 * 숫자가 안되기 때문에 이중 뽀문을 써야한당

//  Triangle.java 
public class Triangle {
    public void printTriangle(int height){
        for(int i=1; i<=height; i++){
            for(int j=1; j<=i; j++){
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}


// TriangleMain.java  

public class TriangleMain {
    public static void main(String[] args) {
     Triangle printer = new Triangle();
     printer.printTriangle(3);
     System.out.println("----------");
     printer.printTriangle(5);
     System.out.println("----------");

    }
}


//결과

* 
* * 
* * * 
----------
* 
* * 
* * * 
* * * * 
* * * * * 
----------

피라미드 만들기

// step-by-step
// 별의개수는 height=3일때 1,3,5 & height=5일때 1,3,5,7 & height=10일때 1,3,5,7,9 => 등차수열 공식이용=> 2n-1

// Pyramid.java
public class Pyramid {
    public void printPyramid(int height){         
        for(int i=1; i<=height; i++){
            System.out.println(2*i-1);
        }
    }
}

// Main.java 
public class PyramidMain {
    public static void main(String[] args){
        Pyramid printer = new Pyramid();

        // 테스트
        printer.printPyramid(3);
        System.out.println("----------");
        printer.printPyramid(5);
        System.out.println("----------");
        printer.printPyramid(10);
    }
}

//  결과값
1
3
5
----------
1
3
5
7
9  
----------
// for문을 이욯애 2*i-1까지 limit을 두고 출력하게 해야 함

public class Pyramid {
    public void printPyramid(int height){
        // 별의 갯수는 1 + (n-1)2 => 2n - 1
        for(int i=1; i<=height; i++){
            for(int j=1; j<=2*i-1; j++){
                System.out.print(j);
            }
            System.out.println();

        }
    }
}


// 결과값
1
123
12345
----------
1
123
12345
1234567
123456789
----------



=======================================================================
// 공백넣기 

public class Pyramid {
    public void printPyramid(int height){
        for(int i=1; i<=height; i++){
            for(int j=1; j<=height-i; j++){
                System.out.print(" ");
            }

            for(int j=1; j<=2*i-1; j++){
                System.out.print("*");
            }
            System.out.println(); 
        }
    }
}

코드잇 소개 프로그램

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("메뉴를 선택e해주세요!(I)ntro (C)ourses (E)xit");
        boolean MainMenu = true;
            while (MainMenu){
                String choice = scanner.next();
                switch(choice){
                    case "I":
                    case "i":
                        System.out.println("안녕하세요! 오늘하루도 화이팅 \n"
                        +"메인메뉴로 돌아갑니다");
                        break;
                    case "C":
                    case "c":
                        boolean CourseMenu = true;
                        while(CourseMenu){
                            System.out.println("수업을 소개합니다.\n"
                        + "(P)ython (J)ava (i)OS (B)ack");
                            switch(scanner.next()){
                                case "B":
                                case "b":
                                    CourseMenu = false;
                                    break;

                                case "P":
                                case "p":
                                    System.out.println("파이썬수업. \n"
                                    +"재미있는파이써닝!");
                                    break;

                                case "J":
                                case "j":
                                    System.out.println("자바수업 \n"
                                            +"재미있는자바!");
                                    break;

                                case "I":
                                case "i":
                                    System.out.println("아이폰짱..! \n"
                                    +  "아이폰은이뻐!");
                                    
                                default:
                                    System.out.println("다시입력해주세요");
                                    break;
                            }
                            break;

                        }
                    case "E":
                    case "e":
                        System.out.println("프로그램을종료합니다");
                        MainMenu = false;
                        break;
                    default:
                        System.out.println("다시입력해주세요");
                        break;




                   }




            }

    }
}