무조건 한번은 실행되는 반복문이다.
while문의 조건이 참일 경우 do를 이용해 앞으로 가져와진다.
(while문 조건이 거짓일 경우 반복이 종료된다.)
while문 공부 때의 연습문제를 do while문을 사용하여 문제를 풀어보자
Scanner input = new Scanner(System.in);
int num = 0;
int sum = 0;
do { // while 의 뒤에 있던 반복할 내용이 do를 이용해서 앞으로 가져옴
System.out.print("더할 값을 입력해주세요(0을 입력하면 중단됨) : ");
num = input.nextInt();
sum += num;
}
while (num != 0); // 조건이 참이라면 do로 올라가 다시 반복
System.out.println("더한 값 : " + sum);
🏁연습 문제 (1~10까지 수 출력하기)
int num = 1;
do {
System.out.println(num);
num++;
} while (num <11);
🏁연습 문제 (업다운 게임)
int answer = 59;
int guess;
int tries = 0;
do {
System.out.print("정답을 추측하여 보세요 : ");
guess = input.nextInt();
tries++;
if (guess < 59) {
System.out.print("정답값보다 작습니다. ");
}
else if (guess > 59) {
System.out.print("정답값보다 큽니다. ");
}
} while (guess != answer);
System.out.println("축하합니다. 시도횟수 = "+ tries);
정해진 횟수만큼 반복하는 구조이다.
for문의 구조
for (초기화; 조건식; 증감식;)
문장 ;
순서
1. 초기화를 실행한다.
2. 반복 조건을 나타내는 조건식을 계산한다.
3. 수식의 값이 거짓이면 for문의 실행이 종료된다.
4. 수식의 값이 참이면 문장이 실행된다.
5. 증감을 실행하고 2.로 돌아간다.
while문과 for문과의 관계
🚩예시
for (int num=1; num<=10; num++) {
System.out.println(num);
}
🏁연습 문제 (팩토리얼 연습)
long mult = 1L; //int로 하면 바이트 부족으로 출력오류 발생 => long을 사용할 것
for (int num =1 ; num <21 ; num++) {
mult *= fac;
System.out.println("1~"+ num +"까지 정수의 곱 : "+ mult);
}
* long mult = 1L;를
int mult = 1; 로 사용하면, 바이트값이 오버되어 출력오류가 생긴다.
값 범위를 잘 확인하여 자료형을 사용하자
🏁연습 문제 (팩토리얼 연습)
System.out.println("더하기를 몇 번 반복할지 작성하세요 : ");
int count = input.nextInt();
int a,b;
for (int num = 1; num <= count; num++) {
System.out.println("두 수를 띄워서 작성하세요 : ");
a = input.nextInt();
b = input.nextInt();
System.out.println("결과 : " + (a+b));
}
🏁연습 문제 (for문과 조건)
int sum = 0;
for (int num = 1; num <= 20; num++) {
if (num % 2 != 0 && num % 3 !=0) {
//! (num % 2 == 0 || num %3 ==0) 과 같음
sum += num;
System.out.println("2,3의 배수가 아닌 수 : "+(num));
}
}
System.out.println(sum9);
if (num9 % 2 != 0 && num9 % 3 !=0)는
if ! (num9 % 2 == 0 || num9 %3 ==0) 과 같다.
for문의 특징
for (int i = 0; i<5; i++) {
System.out.println("반복문입니다" + i);
}
//System.out.println(i); //for문 밖에서는 쓸 수 없다.
//다른 for문에서 사용한 이름은 다른 for문에서 사용할 수 있다.
for (int i = 0; i<5; i++) {
System.out.println("새로운i를 이용한 반복문입니다" + i);
}