✨반복문

  • for문
  • while문
  • do-while문

✨for문

for(초기화; 조건식; 증감식){ }

포함하고 있는 문장들을 정해진 횟수만큼 반복하는 문장

  • 초기화 : 시작 (조건식과 증감식에 사용할 변수가 생성되고 값이 초기화됨)
  • 조건식 : 끝 (조건식이 true면 블럭안의 문장 실행)
  • 증감식 : 변수를 증가 또는 감소시켜 반복문 제어함

실행 순서 : 초기화 -> 조건식 검사 -> 증감식 -> 조건식 다시 검사 => true면 계속 실행, false면 나감

✨for문 연습

  • 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();
}

✨별찍기 for문 연습

  • 별찍기(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문

while(조건식) { }

  • 포함하고 있는 문장들을 조건식이 만족하는 동안 반복함
  • 반복횟수가 정확하지 않은 경우에 주로 사용함

✨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문

do{ } while(조건식);

  • 최소한 한번의 수행을 보장함
  • 조건식이 true일 때 계속 반복하고, false일 때 반복문을 빠져나감

✨do-while문 연습

  • 숫자 맞추기 게임
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면 다시 실행)

0개의 댓글

Powered by GraphCDN, the GraphQL CDN