ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 실습
    Java/OOP 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;
    
    
    
    
                       }
    
    
    
    
                }
    
        }
    }

     

     

    'Java > OOP' 카테고리의 다른 글

    기본형(Primitive Type) & 참조형(Referecne Type) & null  (0) 2022.10.20
    접근제어자  (0) 2022.10.20
    this  (0) 2022.10.01
    생성자(Constructor)  (0) 2022.10.01
    메소드 오버로딩(method overloading)  (0) 2022.09.24

    댓글

Designed by Tistory.