- for문
- while문
- do-while문
for(초기화; 조건식; 증감식){ }
포함하고 있는 문장들을 정해진 횟수만큼 반복하는 문장
- 초기화 : 시작 (조건식과 증감식에 사용할 변수가 생성되고 값이 초기화됨)
- 조건식 : 끝 (조건식이 true면 블럭안의 문장 실행)
- 증감식 : 변수를 증가 또는 감소시켜 반복문 제어함
실행 순서 : 초기화 -> 조건식 검사 -> 증감식 -> 조건식 다시 검사 => true면 계속 실행, false면 나감
- 1부터 10까지 합계를 저장해주세요.
//첫번째 방법 int sum = 0; for(int i=1; i <=10; i++) { sum += i; } System.out.println(sum); //두번째 방법 for(int = 10; i >= 1; i--) { sum += i; } System.out.println(sum);
- 1부터 100까지 짝수의 합을 출력해주세요.
//첫번째 방법 int sum =0; for(int i =2; i<=100; i++){ //1부터 시작해도됨 if(i % 2 ==0) { sum += i; } } System.out.println(sum); //두번째 방법 for(int i=2; i<=100; i+=2) { sum += i; } System.out.println(sum);
- 1부터 100까지 홀수의 합을 출력해주세요.
//첫번째 방법 int sum =0; for(int i =1; i<=100; i++){ if(i % 2 ==1) { sum += i; } } System.out.println(sum); //두번째 방법 for(int i=1; i<=100; i+=2) { sum += i; } System.out.println(sum);
- 구구단 2단을 출력해주세요.
for(int i= 1; i<=9; i++) { System.out.println("2 * " + i + " = " + 2 * i); }
- 구구단 2단~9단을 한번에 반복시켜주세요.
/* * 2 * 1 = 2 * 2 * 2 = 4 * 2 * 3 = 6 * 2 * 4 = 8 * ... * 9 * 7 = 63 * 9 * 8 = 72 * 9 * 9 = 81 */ for(int dan = 2; dan <=9; dan++) { for(int i = 1; i<=9; i++){ System.out.println(dan + " * " + i + " = " + dan * i); } }
구구단 전체를 가로로 출력해 주세요.
/* * 2 * 1 = 2 3 * 1 = 3 4 * 1 = 4 * 2 * 2 = 4 3 * 2 = 6 4 * 2 = 8 */ for(int i =1; i <=9; i++) { for(int dan=2; dan<=9; dan++) { System.out.print(dan + "*" + i + " = " + dan * i + "\t"); } System.out.println(); }
outer : for(int i =2; i<=9; i++) { for(int j =1; j <=9; j++) { if(j == 5) { //break; : 가장 가까운 반복문 하나를 빠져나감 ==> 전체가 4까지만 곱하게됨 //break outer; : outer라는 이름의 반복문을 빠져나감 ==> 2 * (1~4)까지만 하게됨 //continue; : 가장 가까운 반복문의 현재 반복회차를 빠져나감 ==> 전체에서 5를 제외하고 곱하게 됨 //continue outer; : outer라는 이름의 현재 반복회차를 빠져나감 ==> 전체에서 4까지만 곱하게 됨, System.out.println();이 실행되지 않음 } System.out.println(i + " *" + j + " = " + i * j); } System.out.println(); }
- 별찍기(1)
//System.out.println("*****"); //System.out.println("*****"); //System.out.println("*****"); for(int i=1; i<=3; i++) { for(int j=1; j<=5; i++){ System.out.print("*"); } System.out.println(); }
- 별찍기(2)
//System.out.println("*"); //System.out.println("**"); //System.out.println("***"); //System.out.println("****"); //System.out.println("*****"); for(int i=1; i<=5; i++) { for(int j =1; j<=i; j++) { System.out.print("*"); } System.out.println(); }
- 별찍기(3)
//System.out.println("*****"); //System.out.println("****"); //System.out.println("***"); //System.out.println("**"); //System.out.println("*"); //첫번째 방법 for(int i=1; i<=5; i++) { for(int j =5; j>=i; j--) { System.out.print("*"); } System.out.println(); } //두번째 방법 for(int i=1; i<=5; i++) { for(int i=1; i<=5 - i +1; i++) { System.out.print("*"); } System.out.println(); }
- 별찍기(4)
//System.out.println(" *"); //System.out.println(" **"); //System.out.println(" ***"); //System.out.println(" ****"); //System.out.println("*****"); //첫번째 방법 for(int i=1; i<=5; i++) { for(int j=5; j>i; j--) { System.out.print(" "); } for(int k=1; k<=i; k++) { System.out.print("*"); } System.out.println(); //두번째 방법 for(int i=1; i<=5; i++) { for(int j=1; j<=5-i;j++) { System.out.print(" "); } for(int j=1; j<=i; j++) { System.out.print("*"); } System.out.println(); }
while(조건식) { }
- 포함하고 있는 문장들을 조건식이 만족하는 동안 반복함
- 반복횟수가 정확하지 않은 경우에 주로 사용함
- a에 2씩 몇번을 곱해야 1000 이상이 될까 ?
int a = 1; int cnt = 0; while(a < 1000){ //a가 1000보다 커지면 반복문 나감 a *= 2; cnt++; System.out.println(count + " : " + a); } System.out.println(count +"번을 해야 1000이상이 됩니다.");
do{ } while(조건식);
- 최소한 한번의 수행을 보장함
- 조건식이 true일 때 계속 반복하고, false일 때 반복문을 빠져나감
- 숫자 맞추기 게임
int rndNum = (int)(Math.random() * 100) + 1; //1부터 100까지 랜덤한 수 int input = 0; Scanner sc = new Scanner(Sytem.in); do{ System.out.print("1~100사이의 수를 입력해주세요 >"); input = Integer.parseInt(sc.nextLine()); if(input > rndNum) { System.out.println(input + "보다 작습니다."); }else if(input < rndNum) { System.out.println(input + "보다 큽니다."); }else { System.out.println("정답입니다."); } }while(input != rndNum); //입력받은 숫자가 랜덤숫자와 같지 않으면 다시 do{ } 실행함 (조건식이 true면 다시 실행)