Java

while문, 무한반복문, do-while문

빵아지 2023. 2. 15. 03:33

코드 정렬 단축키: ctrl + shift + f

 

 

반복문

어떤 조건에 만족할 때까지 같은 처리를 반복하여 실행하는 구조

 

 

 

 

while과 do-while은 비슷함(몇 번 반복해야할지 모를 때)

for(몇 번 반복해야할지 횟수가 정확할 때)

 

 

 

 

 

while문

while(검사조건->boolean형) {

       System.out.println("실행문장");

}

 

 

검사조건이 참일 경우 실행문장 실행하고 끝이 안 남

-> 다시 검사조건이 참인지 검사하고 중괄호를 다시 실행 (이게 검사조건이 거짓이 나올 때까지 반복함)

 

검사조건이 거짓일 경우 안으로 안 들어가고 끝이 남

내가 반복시킬 것을 3번 정도는 일일히 다 써보는 것도 꿀팁!!!, 애매하게 안다고 생각하면 규칙 못 찾음;;;

(= 확실히 반복문을 이해하기 전까진)

ctrl + alt + 방향키 -> 문장 복사 단축키임

 

 

 

<예시>  

1. 반복시킬 영역을 찾고, 거길 중괄호로 영역을 잡아주기***

2. 반복횟수 지정 변수 선언(num)

3. num에 0을 대입했을 때 true->"Hello world!" 한 번 출력 됨->여기서 종결시키는 게 아닌 한 번 더 반복시키고 싶음

4. 반복시킬 때마다 num값이 1씩 더해진다고 생각 ex)num++ (증감연산자 활용)

(=시작하는 숫자가 몇이느냐에 따라 반복횟수가 달라짐)

난 num 값을 0부터 시작했으니깐 num < 5로 조건식 지정한거임//

           ''        1부터 시작했다면 num<6으로 조건식 수정해야함!!

4. 검사조건엔 (num < 5)----> 실행문장 밑에 num++ 있고 검사조건에서 4는 5보다 작니??가 참이면

결과값이 5(반복횟수)로 나옴

 

 

 

<문제>

 

 

 

<풀이>

1. 우선 while단어나 범위 적기 전 반복되는 구간 먼저 적기

    ex)System~~ nextInt();

2. 그 다음 반복되기 위해서는 무엇이 필요할까 생각하기(= 숫자를 계속 더해서 조건식으로 검사시키자??)

    ex)num++

3. 반복구간을 중괄호로 묶어주기

4. 10이상이 될 경우 반복문은 멈춤!

5. 10이상의 값에 대한 출력문은 } 밑에줄에 적어주기

((=안 그러면 종료되었습니다라는 문장이 정수입력 밑에 줄에 같이 뜸)

 

 

 

 

무한반복문 및 멈추기
(이걸 자주 쓰는 게 좋음)

 

<문제>

- 정수가  10보다 클 경우 종료합니다 나오게 하기

 

 

 

 

<풀이>

***이 방법이 문제풀 때 좋다고 하심!!!

while(True){

반복되는 부분~~~

if(반복 멈추고 싶은 조건식){

break;

}

 

---> 내용 설명하자면 중간에 if를 넣어도 됨!, 단, if를 중간에 넣었다면{ 열어주기

 

 

- while 조건이 true일 경우 무한반복문이라고 한다

- 단, 조건넣고 멈추고 싶다면 반복되는 부분 밑에 if 써서 조건 걸기

- 멈추려면 실행문장 밑에 break;

 

 

 

+꿀팁: 무한반복이 계속될 경우 이클립스 과부화 걸리니깐 빨간 네모 눌러서 멈춰주기 break 입력 안 등록됐을 경우

 

 

 

 

<문제>

-1을 입력한 경우 프로그램 종료

- 정수 입력에는 내가 입력을 해야하는데 ? 누적결과 뒤는 내가 입력하는 칸이 아님을 인지하기

 

 

 

 

<풀이>

- int num = 0; 이런 변수 선언은 while이나 if 윗 줄에 적어주는 게 좋음

 

Q. 집에서 푸는데 누적에 누적값이 안 나오고 num 값으로 출력됐음

(-> 왜그러나 자꾸 분석했는데 true뒤는 무조건 위->아래 순으로 차근차근 반복해주는데

내가 sum += num; 바로 윗 줄에 int sum = 0;을 선언했던거임ㅜㅜㅜ

그래서 while문의 경우 변수선언을 while윗줄에 다 해주기 

 

- 우선 반복할 부분을 {}안에 먼저 적어주기

= 정수 입력 : 

   누적 결과 : 

- true 뒤에 {하고 엔터 쳐주면 편함

 

 

- while (true) 위에 0이라는 값을 넣은 변수를 선언 했으니 입력하는 곳에 굳이 또 변수 선언 안 해도 됨 

변수 선언이 아닌 입력받는 함수 sc.nextInt(); 작성

 

- 누적결과를 보려면 누적을 시킨 다음에 결과를 봐야함!!! 자바는 위에서 아래로 흐르니깐

  (내가 위치 바꿔서 테스트 해봤는데 컴퓨터는 멍청해서 순서 바뀌면 출력 못 함)

 

# sum += num; 이 나온 이유 

정수입력 -> 0, 누적 결과-> 0, 정수입력-> 15, 누적 결과-> 15

0+15...란 말임 그래서? sum = sum + num

 

누적결과는 검정색 글자(프린트해서 적어줘야해;;;)

 

- 만약 -1이라면 ? 실행문장에는  종료되었습니다.

- 꼭  break; 써라

 

 

 

 

<문제>

 

 

 

<풀이>

해결 방법

내가 활용할 흐름 : while(true) {~~~~        if(){~~~~~~ break;}

 

 

증감 연산자 활용하는 문제임   ------> ex) 변수명++, 변수명--

짝수 홀수 계산은 if문을 활용하면 쉬움(if->else if 쓰던지 / if -> 실행식 1 + 또다른 if -> 실행식 2)

그냥 계산 관련해서는 if문 써라

 

 

 

- 1이 나올 경우에는( 홀수개수 , 짝수개수 )안 적힌 후 break된다

(순서)

# 틀린 출력  순서 (System.out.println ~~~)

숫자 입력 -> 짝수개수 -> 홀수개수 -> break

---> 내가 처음에 이렇게 입력을 했었음(이렇게 되니 -1을 입력하니 짝수개수->홀수개수->종료되었습니다. 뜸)

 

 

# 옳은 출력 순서 (System.out.println ~~~)

숫자 입력 -> break-> 짝수개수-> 홀수개수

 

 

 

 

do-while문

 

do{

     System.out.prinln("반드시 한 번 실행");

}while(검사조건);

 

-do 뒤에 검사조건을 적는 게 아님!!!, 검사조건 뒤에 ; 를 빼먹으면 안 됨

- 검사조건은 데이터 유형이 불린형이다~!

- 실행문장을 무조건 한 번 실행을 시킨 다음에 검사를 함 true면 반복, false면 끝

 

 

<스마트인재개발원 수업자료이니 무단으로 사용 금지합니다>

 

 

나는 날마다 모든 면에서 점점 더 좋아지고 있다

체력 때문에 고통받기 싫어서 ?  나 천국의 계단 수업 끝나고 40분 넘게 탔다 대단해 잘했어

잠은 죽어서도 잘 수 있고 ^^ 정년퇴직하고 하루에 10시간 자도 그 누구도 뭐라 안 함
(노후 자금을 모았다는 전제 하에)

자바 = ㅈㅂ = ㅈ밥이다 라고 생각하기

인간사회에서 과정중심은 인간관계 밖에 없다.

자바 뚫을 때마다 내 미래 연봉이 올라감

이지영 일타강사님 연 100억씩 버는데도 하루에 4시간 밖에 안 잔다 정신 차리기

 

 

'Java' 카테고리의 다른 글

이중for문  (1) 2023.02.17
random, for문  (0) 2023.02.16
다중if문, switch-case문,  (0) 2023.02.13
삼항연산자, 조건문(단순if문, if-else문)  (0) 2023.02.11
산술연산자, 증감연산자  (0) 2023.02.09