코드 정렬 단축키: 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 |