ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 11. 조건문/반복문_3
    [JAVA] 2023. 5. 12. 17:45

    1. 중첩 for문
     - for문 내에 또 다른 for문을 포함시킬 수 있다.

    2. while문 *for문이랑 호환됨
    - 조건을 만족시키는 동안 {}을 반복 - 반복횟수 모를 때 사용하기 좋음
      while (조건식) {
      (연산결과가 true인동안 반복될 문장들)
      }

    3. do-while 문
    - {}을 최소한 한번 이상 반복 - 사용자 입력 받을 때 유용
      do { 1. 먼저 실행 
      (조건식의 연산 결과가 true일 때 수행될 문장들을 적는다)
      } while (조건식); 2. 실행

    4. break 문
    - 자신이 포함된 하나의 반복문을 벗어난다.
      while(true) {
       if(sum > 100)
       break;
       ++i; // break문의 수행되면 이 부분은 실행되지 않고 while문을 완전히 벗어난다.
       sum += i;
     }

    5. continue문
    - 자신이 포함된 반복문의 끝으로 이동 - 다음 반복으로 넘어감
      전체 반복 중에서 특정 조건시 반복을 건너뛸 때 유용

    6. 이름 붙은 반복문
    - 반복문에 이름을 붙여서 하나 이상의 반복문을 벗어날 수 있다.
      for문에 loop1이라는 이름을 붙이고
      break 'loop1';

     

    <연습문제>

    1.중첩for문

    // 중첩for
    for(int i=2; i<=9; i++) {
    for(int j=1; j<=9;j++) {
    System.out.println(i+" * "+j+" = "+(i*j));
    }
    System.out.println();
    }

    for (int i=1; i<=5; i++) { // i= {}안의 내용을 5번 반복
    for(int j=1; j<=10; j++) {
    System.out.print("*"); //2번째 for문안에 해당되는 것, *=10
    }
    System.out.println(); //1번째 for문에 해당되는 것, *=10개가 5줄로 출력
    }

    for (int i = 1; i <=5; i++) {
    for (int j=1; j <= i; j++){ // *의 개수가 i가 증가하는 만큼 증가함
    System.out.print("*");
    }
    System.out.println();
    }

    2. while문

    // while


    // 1. 반복할 횟수
    int w = 5;
    // 2. 반복될 문장
    while(w--!=0) { // w 0과 같지 않을 때 false로 출력 반복 끝 즉, 0까지 나옴
    System.out.println( w + "- I can do it.");
    }

    int sum = 0;
    int i = 0;

    while (sum <= 100) {
    System.out.printf("%d - %d%n", i, sum);// 1~13까지, 14 105 100을 넘어감
    // i 1씩 증가하면서 sum에 계속 더한다, 0+1=1 => 1+2=3 => 3+3=6 ... 78+13=91
    sum += ++i;
    }

     

    3. 각 자리수의 합 (Scanner, while)

    int num = 0, sum = 0;
    System.out.print("숫자를 입력하세요: ");

    Scanner scan = new Scanner(System.in);
    String tmp = scan.nextLine();

    num = Integer.parseInt(tmp);

    while(num!=0) {
    sum += num%10; // sum = sum + num%10
    System.out.printf("sum=%3d num=%d%n", sum, num);

    num /= 10; // num 10으로 나눈 값을 num에 저장
    }
    System.out.println("각 자리수의 합: "+sum);

    }
    }

    4. break문 (while, if, break)

    int sum = 0;
    int i = 0;

    while (true) { //무한 반복문 ==> for(;true;) {}
    if (sum > 100) // 무한 반복하다가 조건 실행이 되면 break 실행 while문 빠져나감
    break;
    ++i;
    sum += i;
    } // 14까지 더하면 105 100이 넘음! if문 충족

    System.out.println("i="+i);
    System.out.println("sum="+sum);

    }
    }

    5. 메뉴 반복 (while, Scanner, break, contunue)

    int menu = 0;
    int num = 0;

    Scanner scan = new Scanner(System.in);

    while(true) { //무한반복
    System.out.println("(1) A");
    System.out.println("(2) B");
    System.out.println("(3) C");
    System.out.print("원하는 메뉴를 선택하세요(1~3, 종료=0)");

    String tmp = scan.nextLine(); // new Scanner(System.in)의 내용을 tmp에 저장
    menu = Integer.parseInt(tmp); // tmp를 숫자로 변환

    if (menu==0) {
    System.out.println("종료");
    break;
    } else if (!(1 <= menu && menu <=3)) { //1~3 범위가 아닐때
    System.out.println("메뉴를 잘못 선택하셨습니다.");
    continue;
    }
    System.out.println("선택하신 메뉴는: " + menu + "번입니다."); // 출력 후 다시 메뉴 나옴

    }

    }
    }

    '[JAVA]' 카테고리의 다른 글

    14. 배열_3  (0) 2023.05.17
    12. 배열_1  (0) 2023.05.17
    10. 조건문/반복문_2  (3) 2023.05.11
    9. 조건문/반복문_1  (0) 2023.05.11
    8. 연산자_2  (0) 2023.05.10
Designed by Tistory.