예제 노트/Java 예제

Java 예제 Ch 4 조건문, 반복문

Ing_til_death 2021. 10. 21. 09:39

ex) Switch문- 몇 월인지 입력받아 계절을 출력하는 예제

 

import java.util.*;

calss FlowEx6{
   public static void main(String[] args) {
       System.out.print("현재 월을 입력하세요.>");
          
       Scanner scanner = new Scanner(System.in);
       int month = scanner.nextInt(); // 화면을 통해 입력받은 숫자를 month에 저장

       switch(month) {
              case 3:
              case 4:
              case 5:
                   System.out.println("현재의 계절을 봄입니다.");
                   break;
             case 6: case 7: case 8: (앞부분 case 3,4,5와 같다)
                   System.out.println("현재의 계절을 여름입니다.");
                   break;      
             case 9: case 10: case 11: 
                   System.out.println("현재의 계절을 가을입니다.");
                   break;      
             default:
             case 12: case 1: case 2: 
                   System.out.println("현재의 계절을 겨울입니다.");
                   break;      
        }
    }
}

ex) for문 - 차례로 출력

 

for (int i=1; i<=5; i++) {

    for (int j=1;j<=5; j++) {

        System.out.printf("[%d, %d]", i, j);

     }

==> [1,1],[1,2] .....

 

ex) while문에서 boolean을 활용한 예제.  // boolean a = true  => while(a)

 

import java.util.*;

class FlowEx 27{
	public static void main(String [] args){
    	int num;
        int sum = 0;
        boolean flag = true; // while문의 조건식으로 사용할 변수
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("합계를 구할 숫자를 입력하세요.(끝내려면 0을 입력)");
        
        while(flag){
        	System.out.println(">>");
            String tmp = scanner.nextLine();
            num = Integer.parseInt(tmp);
            
            if(num !=0){
            	sum+=num; // num이 0이 아니면, 더한다.
            } else {
            	flag = false;
            }
        }
        
        System.out.println("합계:" +sum);
 	}
}
            
입력
100
200
300
400
0

결과: 1000

 

 

ex) do-while문 - 3,6,9 게임

 

class FlowEx 29 {
     public static void main(String [] args) {
         for (int i=1; i<=100; i++) {
              System.out.printf("i= %d ", i);
            
              int tmp = i;
 
              do {
                   // tmp%10이 3의 배수인지 확인(0 제외)
                   if (tmp%10%3==0 && tmp%10!=0)
                          System.out.print('짝');
                   // tmp /=10은 tmp=tmp/10과 동일
              } while ((tmp/10)!=0);
             
              System.out.println();
         }
    }
}

// 3,6,9 게임이다(3의 배수가 아니라)
// 먼저 실행하고, 계속 반복할 지 결정하기에, 
// 두 자리 수인 경우 먼저 tmp%10을 하고나서 %3을 하는 것이다. 
// tmp%10!=0 은 3,6,9가 십의 자리의 수인 경우 tmp/10 하고나서 적용될테니..
// 그리고나서 tmp/10을 해서 한 번 더 while문 실행 ex 97인 경우 -> 9로 재시작.

 

ex) 이름이 있는 반복문 - 계산기

import java.util.*;

class FlowEx34 {
   public static void main(String[] args) {
          int menu = 0, num = 0;

          Scanner scanner = new Scanner(System.in);
 
          outer:
          while(true) { // 메뉴를 계속해서 선택할 수 있게
                System.out.println("(1) square");
                System.out.println("(2) square root");
                System.out.println("(3) log");
                System.out.println("원하는 메뉴(1~3)를 선택하세요. (종료:0)>");

                String tmp = scanner.nextLine(); //
                menu = Integer.parseInt(tmp);

                if (menu == 0) {
                      System.out.println("프로그램을 종료합니다.");
                      break;
                } else if (!(1<= menu && menu <=3)) {
                      System.out.println("메뉴를 잘못 선택하셨습니다. (종료는 0)");
                      continue;
 
               for(; ;) { // 메뉴를 선택했으면 반복적으로 활용할 수 있게 된다.
                      System.out.println("계산할 값을 입력하세요. (계산 종료:0, 전체 종료: 99)>");
                      tmp = scanner.nextLine; // 화면에서 입력받은 내용을 tmp에 저장
                      num = Integer.parseInt(tmp); // 입력받은 문자열(tmp)을 숫자로 변환

               if(num==0)
                    break;
               if(num==99)
                    break outer;
               switch(menu) {
                    case 1:
                       System.out.println("result="+num*num);
                       break;
                    case 2:
                       System.out.println("result="+Math.sqrt(num));
                       break;
                    case 3:
                       System.out.println("result="+Math.log(num));
                       break;
               }
         } // for 끝
    } //while 끝
  } // main 끝
}

ex) 햄버거 메뉴 예제