반응형
* for 문
< 기본문법 >
for (초기식; 조건식; 증감식) {
// 조건식이 true 일 때 반복 실행할 문장들...
}
//=> 실행순서 : 초기식 -> 조건식 -> 실행문 -> 증감식 -> 조건식 -> 실행문 ...
// for문 안에서 선언된 i는 for문 종료후 제거됨.
*중첩 for문
- for문 내에 또 다른 for문을 기술하여 반복 문장을 여러번 반복하는 문
< 기본 문법 >
for (초기식1; 조건식1; 증감식1) {
for (초기식2; 조건식2; 증감식2) {
}
}
*이클립스 디버깅*
- 브레이크포인트 만들기 + F11 - "디버깅 편한 레이아웃으로 바꿀래?" 라고 물어봄. - 'switch' 클릭 - 우측상단에 벌레모양 아이콘 나오면서 코드가 멈춤 - F6으로 한단계식 진행하면서 값 확인하기 - 콘솔에 원하는 값이 찍히면 완성. |
* 오늘의 과제 *
Q. 변수에서 7의 갯수를 찾아서 출력하시오.
ex. int n = 247427723 일 경우 : 3
풀이과정 1.
: 반복되는 과정을 찾아보자.
// 7 3 7 2가 나오는 과정을 만들어보자. ( 각 자리의 숫자 뽑기)
int num = 7372;
System.out.println(num % 10); // 답 : 2, 이제 737만 나오면 된다. 7372에서 1의 자리를 없애려면 10을 나눠준다.
System.out.println(num / 10); // 답 : 737, 또 마지막 자리인 7이 나와야 한다.
System.out.println((num / 10) % 10); // 답 : 7, 이제 73이 나와야 한다.
System.out.println(num / 10 / 10); // 답 : 73
System.out.println((num / 10 / 10) % 10 % 10); // 3
System.out.println(num / 10 / 10 / 10); // 7
System.out.println((num / 10 / 10 / 10) % 10 % 10 % 10); // 7
System.out.println(num / 10 / 10 / 10 /10); // 0
// => 중복되는 결과 확인함.
풀이과정2.
: 누적되는 것을 반복문으로 바꿔보자. 이 과정은 디버깅이 필요하다. 브레이크 포인트를 찍은 후 F11 눌러서 디버깅을 진행하자.
(1) 1의 자리 디버깅하기(F6으로 진행)
(2)10의 자리 디버깅하기 (F6으로 진행)
- num % 10 과 num % 10 이 진행되어 count 가 1 증가함. - num 값은 73이 됨. |
- num % 10 과 num % 10 이 진행되어 count 는 그대로 - num 값은 7이 됨. |
- num % 10 과 num % 10 이 진행되어 count 는 1증가하여 2가 됨. - num 값은 0이 됨. - 표가 미묘하게 바뀜. |
- - >모든 작업이 진행되었지만 while 문의 파라미터 값이 true라서 무한루프를 돌고있음. |
- 현재 num 도 계속 0이되고 있음. [ num 이 0이면 무한루프를 돌고, num 이 0이 아니면 무한루프를 나간다 고 가정하여 보자.] -> while문에 num!=0 으로 조건변경 후, 새로 디버깅 시작함. |
|
- "Variables 탭"과 "Expressions 탭"이 백지로 변하고 "콘솔"에 [ count : 2 ]를 찍어내고 종료함. 디버깅이 종료됨. | ||
/*
변수에서 7의 갯수를 찾아서 출력하시오.
ex. int n = 247427723 일 경우 : 3
*/
int num = 247427723;
int count = 0;
while(num != 0) {
if(num % 10 == 7) {
count++;
}
num /= 10;
}
System.out.println("count : "+count);
반응형
'자바스프링웹공부(2024) > 자바' 카테고리의 다른 글
2024.08.05. break && continue (4) | 2024.08.05 |
---|---|
2024.08.05. 중첩for (0) | 2024.08.05 |
2024.08.01. 반복문(Loop) - while문, 중첩 while문 (0) | 2024.08.01 |
2024.08.01. 조건문(중첩 if문, switch_case, ) (0) | 2024.08.01 |
2024.07.25. 변수, 형변환, 연산자1 (0) | 2024.07.26 |