<반복문>
for문
for(초기화; 조건식; 증감식){}
(조건식이 true면 실행, false면 for문을 벗어남)
포함하고 있는 문장들을 정해진 횟수만큼 반복하는 문장
(초기화에서 시작 설정, 조건식에서 끝 설정)
for(int i = 1; i <= 10; i++){
System.out.println(i + "번째 반복");
}
초기화 : 조건식과 증감식에 사용할 변수 초기화
조건식 : 연산결과가 true이면 블럭안의 내용을 수행
증감식 : 변수를 증가/감소시켜 반복문을 제어
for문에서 만든 변수는 for문 안에서만 사용 가능
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);
여러 문장이 비슷한 패턴으로 반복될 때 반복문 사용
1부터 10까지 1씩 증가(반복횟수)
sum = 0;
for(int i = 1; i <= 10; i++){
sum += i;
}
System.out.println(sum);
10에서 1까지 1씩 감소(반복횟수)
sum = 0;
for(int i = 10; i >= 1; i--){
sum += i;
}
System.out.println(sum);
1부터 100까지의 짝수의 합을 출력해주세요.
sum = 0;
for(int i = 2; i <= 100; i += 2){
sum += i;
}
System.out.println(sum);
1부터 100까지의 홀수의 합을 출력해주세요.
sum = 0;
for(int i = 1; i <= 100; i += 2){
sum += i;
}
System.out.println(sum);
구구단 출력
구구단 9단을 출력해주세요.
for(int i = 1; i <= 9; i++){
System.out.println(9 + " " + i + " = " + i 9); }
구구단 2단부터 9단까지 출력
for(int i = 2; i <= 9; i++){
for(int j = 1; j <= 9; j++){
System.out.println(i + " * " + j + " = " + i * j); }
}
구구단 전체를 가로로 출력해주세요.
for(int i = 1; i <= 9; i++){
for(int j = 2; j <=9; j++){
System.out.print(j + " * " + i + " = " + j * i + "\t");
// \t 넣어서 줄 간격 맞추기
}
System.out.println();
while문
while(조건식){}
//조건식이 true면 블럭 안 문장수행
포함하고 있는 문장들을 조건식이 만족하는 동안 반복하는 문장
반복횟수가 정확하지 않은 경우에 주로 사용한다.
while문을 for문으로 바꿀 수 있다.
(for문 -> while문은 불가능)
int a = 1;
//a에 2씩 곱해서 1000이상이 되려면 몇 번을 곱해야 하는가?
int count = 0;
while(a < 1000){
a *= 2;
count++;
System.out.println(count + " : " + a);
}
do-while문
do{}while(조건식);
최소한 한번의 수행을 보장한다.
-> 무조건 do를 먼저 수행하고 조건식으로 넘어가기 때문
-> 조건이 참일 때 반복, 거짓일 때 반복문을 빠져나간다.
숫자맞추기 게임
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);
이름붙은 반복문
outer : for(int i = 2; i <= 9; i++){ for(int j = 1; j <= 9; j++){ if(j == 5){ break; // 가장 가까운 반복문 하나를 빠져나간다. break outer; //outer라는 이름의 반복문을 빠져나간다. continue; // 가장 가까운 반복문의 현재 반복 회차를 빠져나간다. conntinue outer; // outer라는 이름의 현재 반복회차를 빠져나간다. } System.out.println(i + " * " + j + " = " + i * j); } System.out.println(); }