JAVA DAY8 - 반복문

어뮤즈온·2020년 11월 30일
0

초급자바

목록 보기
11/31

반복문

  • for문
  • while문
  • do-while문

반복문은 어떤 작업이 반복적으로 수행되도록 할 때 사용되며, 반복문의 종류로는 for문과 while문, 그리고 while문의 변형인 do-while문이 있다.


for문

  • for(초기화; 조건식; 증감식){//조건식이 true인 동안 수행될 문장들}
  • 포함하고 있는 문장들을 정해진 횟수만큼 반복하게 해주는 문장
  • for문은 반복 횟수를 알고 있을 때 적합하다.
for(int i = 1; i <= 10; i++){
    //초기화 : 조건식과 증감식에 사용할 변수 초기화
    //조건식 : 연산결과가 true이면 블럭안의 내용을 수행
    //증감식 : 변수를 증가/감소시켜 반복문을 제어
    System.out.println(i);
    //for문 안에 int i;는 지역변수이기 때문에 for문 밖에서 사용을 못한다.
} //1~10까지 출력

int sum = 0; //1부터 10까지 합계를 저장
		
sum += 1;
sum += 2;
sum += 3;
sum += 4;
sum += 5;
sum += 6;
sum += 7;
sum += 8;
sum += 9;
sum += 10;
System.out.println(sum); //55 출력

//위의 식을 반복문을 통해서 출력
sum = 0;
for(int i = 1; i <= 10; i++){
	sum += i;
}
System.out.println(sum); //55 출력

예제1

//100부터 1까지 더하는 for문
int sum = 0;
for(int i = 100; i >= 1; i--){
	sum += i;
}
System.out.println(sum); //5050 출력

//1부터 100까지 짝수만 더하는 for문
sum = 0;
for(int i = 1; i <= 100; i++){
	if(i % 2 == 0){
    		sum += i;
    	}
}
System.out.println(sum); //2550 출력

예제2

//for문을 사용해 구구단 2단을 출력하시오
for(int i = 1; i <= 9; i++){
	System.out.println(2 + " * " + i + " = " + i*2);
}

//for문을 사용해 구구단 2~9단까지 출력하시오
for(int i = 2; i <= 9; i++){
	for(int j = 1; j <= 9; j++){
    		System.out.println(i + " * " + j + " = " + i * j);
    	}
}

//for문을 사용해 구구단 전체를 가로로 출력하시오
/* 2 * 1 = 2	3 * 1 = 3	4 * 1 = 4   ...
*  2 * 2 = 4	3 * 2 = 6	4 * 2 = 8   ...
*  2 * 3 = 6	3 * 3 = 9	4 * 3 = 12  ... 
* ...
*/
for(int i = 1; i <= 9; i++){
	for(int j = 2; j <= 9; j++){
    		System.out.print(j + " * " + i + " = " + j*i + "\t");
    	}
    	System.out.println();
}

while문

  • while(조건식){//조건식의 연산결과가 true인 동안 반복될 문장들}
  • 포함하고 있는 문장들을 조건식이 만족하는 동안 반목하는 문장
  • 반복횟수가 정확하지 않은 경우에 주로 사용한다.
  • 종료되는 시점만 정확하다.
int a = 1;
//a에 2를 몇번을 곱해야 1000이상이 되는지 알아보시오
int count = 0;
while(a < 1000){
	a *= 2;
    	count++;
    	System.out.println(count + " : " + a);
} //마지막 출력 결과 -> 10 : 1024

do-while문

  • do{}while(조건식);
  • 실행 후에 true인지 확인하므로 무조건 최소한 한번의 수행을 보장한다.
//숫자 맞추기 게임
int answer = (int)(Math.random() * 100) + 1;
int input = 0;
Scanner s = new Scanner(System.in);
do{
	System.out.println("1 ~ 100사이의 수를 입력해주세요>");
	input = Integer.parseInt(s.nextLine());
			
	if(answer < input){
		System.out.println(input + " 보다 작습니다.");
	}else if(input < answer){
		System.out.println(input + " 보다 큽니다.");
	}else{
		System.out.println("정답입니다!!");
	}
}while(input != answer);

**while문과 do-while문의 차이점
do-while문은 실행부터 하므로 최소한 한번의 수행을 보장한다.


이름붙은 반복문

  • break : 가장 가까운 반복문 하나를 빠져나간다.
  • break name : name이라는 이름의 반복문을 빠져나간다.
  • continue : 가장 가까운 반복문의 현재 반복회차를 빠져나간다.
  • continue name : name이라는 이름의 현재 반복회차를 빠져나간다.
outer : for(int i = 2; i <= 9; i++){
	for(int j = 1; j <= 9; j++){
		if(j == 5){
			break; 
//			break outer;
//			continue;
//			continue outer;
		}
		System.out.println(i + " * " + j + " = " + i * j);
	}
	System.out.println();	
}

중첩 for문

for문 안에 또 다른 for문을 포함시키는 것을 가능하며, 중첩 for문이라고 한다. 중첩횟수는 거의 제한이 없다.

/* 다음의 모양으로 출력하시오
*  *****
*  *****
*  *****
*/

for(int i = 1; i <=3; i++){
 	for(int j = 1; j <=5; j++){
    		System.out.print("*");
    	}	
    	System.out.println();
}

/* *
*  **
*  ***
*  ****
*  *****
*/

for(int i = 1; i <= 5; i++){
 	for(int j = 1; j <= i; j++){
    		System.out.print("*");
    	}
    	System.out.println();
}

/* *****
*  ****
*  ***
*  **
*  *
*/

for(int i = 5; i >= 1; i--){
	for(int j = 1; j <= i; j++){
    		System.out.print("*");
    	}
    	System.out.println();
}
profile
Hello, world!

0개의 댓글