[5] do while, for

지오니모·2022년 7월 29일
0

Java

목록 보기
10/12

do while

무조건 한번은 실행되는 반복문이다.
while문의 조건이 참일 경우 do를 이용해 앞으로 가져와진다.
(while문 조건이 거짓일 경우 반복이 종료된다.)


while문 공부 때의 연습문제를 do while문을 사용하여 문제를 풀어보자

  • 문제 : 입력받은 모든 값을 더하여 반복이 끝나면 총합 값을 출력하라. 0이 입력되면 반복이 중단된다.
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까지 수 출력하기)

  • 문제 : 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문의 구조

for (초기화; 조건식; 증감식;)
	문장 ;

순서
1. 초기화를 실행한다.
2. 반복 조건을 나타내는 조건식을 계산한다.
3. 수식의 값이 거짓이면 for문의 실행이 종료된다.
4. 수식의 값이 참이면 문장이 실행된다.
5. 증감을 실행하고 2.로 돌아간다.


while문과 for문과의 관계



🚩예시

  • 문제 : 1~10까지의 수를 출력하라
for (int num=1; num<=10; num++) {
	System.out.println(num);
}



🏁연습 문제 (팩토리얼 연습)

  • 문제 : 20!의 값을 구하라
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문과 조건)

  • 문제 : 1부터 20까지의 정수 중 2 또는 3의 배수가 아닌 수의 총합을 출력하라
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문이 초기화 값은 for문안에서만 가능하다
  • System.out.println(i); //for문 밖에서는 쓸 수 없다.
  • 다른 for문에서 사용한 이름은 다른 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);
}

profile
프론트엔드 지망생

0개의 댓글

관련 채용 정보