📖 학습 계획, 배운 것
- Java 기초 학습
- 조건문, 반복문 ~ 형변환까지의 학습 계획
- 조건문
- Switch문은 if문과 달리 값에 대한 비교만 가능함
단, if문은 비교 연산자를 사용하여 비교, 편리함에 있어서는 Switch문의 기능을 적절히 활용할 것
switch (조건식) { case value1: // 조건식의 결과 값이 value1일 때 실행되는 코드 break; case value2: // 조건식의 결과 값이 value2일 때 실행되는 코드 break; default: // 조건식의 결과 값이 위의 어떤 값에도 해당하지 않을 때 실행되는 코드 } - case에서의 break문이 없는 경우는 다음 case의 코드를 실행하게 된다
- Java 14부터는 새로운 Switch문을 활용하여 구성할 수도 있음
package cond; public class Switch4 { public static void main(String[] args) { //grade 1:1000, 2:2000, 3:3000, 나머지 : 500 int grade = 2; int coupon = switch (grade) { case 1 -> 1000; case 2 -> 2000; case 3 -> 3000; default -> 500; }; System.out.println("발급받은 쿠폰 : " + coupon); } }
차이점은 '->' 를 사용하여 표현하고, 선택된 데이터를 반환할 수 있다는 부분, 이후 내용에 대해서는 후에 학습한 내용으로 보충할 예정
- Switch문은 if문과 달리 값에 대한 비교만 가능함
- 삼향 연산자
- 단순히 참과 거짓에 따라 특정 값을 구하는 경우는 삼항 연산자 또는 조건 연산자인 '?:' 연산자를 사용할 수 있음
(조건) ? 참_표현식 : 거짓_표현식
- 단순히 참과 거짓에 따라 특정 값을 구하는 경우는 삼항 연산자 또는 조건 연산자인 '?:' 연산자를 사용할 수 있음
- 반복문
- while, do-while, for 를 활용하여 구성
- while문
변수 선언을 통해 조건문 안에서도 정해진 변수만큼의 반복 횟수를 유연하게 변경할 수 있음while (조건식) { // 코드 } - do-while문
조건에 상관없이 무조건 한번은 코드를 실행하게 됨. while 안의 조건을 만족할 경우 다시 반복되나, 조건이 거짓인 경우에는 do-while문을 빠져나오게 됨do { // 코드 } while (조건식); - break, continue
- 모든 반복문에서 사용할 수 있으며
break는 반복문을 즉시 종료하고 나감
while(조건식) { 코드1; break;//즉시 while문 종료로 이동한다. 코드2; } //while문 종료
continue는 반복문의 나머지 부분을 건너뛰고 다음 반복으로 진행하는데 사용
while(조건식) { 코드1; continue;//즉시 조건식으로 이동한다. 코드2; } - for문
- for문은 주로 반복 횟수가 정해져 있을때 사용
for (1.초기식; 2.조건식; 4.증감식) { // 3.코드 }
for문의 실행 순서는 아래와 같음
1. 초기실 실행. 딱 1번만 사용됨
2. 조건식 검증. 참이면 코드 실행, 거짓인 경우 for문 탈출
3. 코드 실행
4. 코드 종료 시 증감식 실행
5. 다시 조건식부터 실행(무한반복) - 세미콜론(;)을 유지하고 초기식, 조건식, 증감식은 생략해도 무방함
- for문은 주로 반복 횟수가 정해져 있을때 사용
- 모든 반복문에서 사용할 수 있으며
- 스코프, 형변환
- 선언한 위치에 따라 지역 변수, 멤버 변수(클래스 변수, 인스턴스 변수)와 같이 분류
- 멤버 변수는 후에 학습, 지역변수를 우선적으로 기억 할 것
지역 변수는 이름 그대로 특정 지역에서만 사용할 수 있는 변수, 지역을 벗어나면 사용할 수 없음!
- 멤버 변수는 후에 학습, 지역변수를 우선적으로 기억 할 것
- 변수의 접근 가능한 범위를 스코프(Scope)라 함.
- 선언한 위치에 따라 지역 변수, 멤버 변수(클래스 변수, 인스턴스 변수)와 같이 분류
- 조건문
- 조건문, 반복문 ~ 형변환까지의 학습 계획
📝 학습 간 궁금한 부분
- 누적 합 계산에 있어서 아래의 예제에 맞는 정답을 만들고자 했음
- while문과 for 문 2가지 버전의 정답을 만들어야 함
- 문제 : 반복문을 사용하여 1부터 max 까지의 합을 계산하고 출력하는 프로그램 작성. 이때, sum 이라는 변수를 사용하여 누적 합을 표현하고, i라는 변수를 사용하여 카운트(1 ~ max 증가하는 변수) 를 수행해야 함
출력 예시는 아래와 같음
//max=1 1 //max=2 3 //max=3 6 //max=100 5050 - for 문 풀이 진행 간 아래와 같이 코드 구성을 진행했음
여기서 발생한 문제점은 누적 합의 최종결과를 보여주는 것이 아닌 증가하는 값마다의 결과값을 노출시키는 오류가 발생했음package loop.ex; public class ForEx3 { public static void main(String[] args) { for (int i = 1, sum = 0, max = 100; i <= max; sum += i, i++) { System.out.println(sum+i); } } }
반복문 내에서의 println 명령어로 인하여 증가하는 변수의 값들을 일일히 보여주는 에러가 발생하는 것을 발견 아래와 같이 수정 시 정상 결과값을 도출해 내는 부분을 확인했음
* 혹여나 위의 정답에서도 println을 for문 안에 넣게 되면 잘못된 결과를 도출했던 에러와 동일한 상황을 만들어 낼 수 있음을 확인했음package loop.ex; public class ForEx3 { public static void main(String[] args) { int max = 100; int sum = 0; for (int i = 1; i <= max; i++) { sum += i; } System.out.println(sum); } }
💡느낀점 및 보완 필요사항
- while vs for
- for문
- 장점
1. 초기화, 조건 체크, 반복 후의 작업을 한 줄로 처리할 수 있어서 편리함
2. 정해진 횟수만큼의 반복 수행을 하기에 적합함
3. 루프 변수의 범위가 for 루프 블록에 제한되므로, 다른 곳에서 이 변수를 실수로 변경할 가능성이 적음 - 단점
1. 루프의 조건이 루프 내부에서 변경되는 경우, for 루프는 관리하기 힘듦
2. 복잡한 조건을 가진 반복문을 작성하기에는 while문이 적합함
- 장점
- while문
- 장점
1. 루프의 조건이 루프 내부에서 변경되는 경우, while 루프는 이를 관리하기 쉬움
2. for 루프보다 더 복잡한 조건과 시나리오에 적합함
3. 조건이 충족되는 동안 계속해서 루프를 실행하며, 종료 시점을 명확하게 알 수 없는 경우 용이 - 단점
1. 초기화, 조건 체크, 반복 후의 작업이 분사되어 있어 코드를 이해하거나 작성에 어려움이 있을 수 있음
2. 루프 변수가 while 블록 바깥에서도 접근 가능하므로, 이 변수를 실수로 변경하는 상황이 발생할 수 있음
- 장점
- for문
- 예제 실습 간 진행했던 것처럼 반복문, 특히 중첩반복문의 경우 초기값 설정과 범위 그리고 노출하고자 하는 결과값이 어느 단계에서 실행되어야 하는지에 대한 명확한 이해도가 필요함을 확인했음.
- 지속적으로 반복 숙달 과정을 거치면서 반복문의 실행 범위, 변수의 범위를 통해 선언 가능 부분, 결과값 출력에 있어 어느 위치에 구성하느냐에 따른 결과값의 변동 등을 확인할 수 있도록 해야겠다.
'내배캠 끄적끄적 > Today I Learned' 카테고리의 다른 글
| 250825 TIL (4) | 2025.08.25 |
|---|---|
| 250822 TIL (0) | 2025.08.22 |
| 250819 TIL (2) | 2025.08.19 |
| 250818 TIL (3) | 2025.08.18 |
| 250814 TIL (4) | 2025.08.14 |