TIL (Today I Learned)
TIL) 중복 if문을 쓸 때 괄호()를 조심하자
Won's log
2023. 5. 25. 09:35
TIL 기준
1. 어떤 문제가 있었는지
2. 내가 시도해 본 것들
3. 어떻게 해결했는지
4. 뭘 새롭게 알았는지
=문시해알
오늘은 1가지 문제에 봉착하여 이를 해결한 과정을 적었다
문제: 중복 if 문을 실습하는데 계속 에러가 났다
시도: 에러 메시지에서는 else에 If가 필요하다는 말이었다
처음에는 else를 잘못 추가했는지, if가 적었는지 고민을 해보았다
해결: 함수를 넣고 빼고를 반복했지만 여전히 동일한 에러 메시지가 떠서 처음부터 다시 작성해 보았다
아니나 다를까 이번에는 실행이 잘 되었고 이전 코드와 비교하니 }의 위치가 비정상적으로 붙어있었다
즉 }가 하나씩 미뤄져서 저장된 것
분석해보니 내가 강사님을 따라서 else if { }를 적을 때 엔터를 여러 번 치고 괄호를 추가적으로 1개를 더 붙여서 그랬다
앎: 코드를 짜면서 중복 if문은 많이 사용된다고 하는데 개발자의 또 다른 필요 성품은 차분함과 꼼꼼함이 아닌가 싶다
돌다리도 여러 번 두드려야 하듯 나도 코딩을 할 때 한 번 더 차분이 짜야겠다
[1] 문제의 코드
public class W09 {
public static void main(String[] args) {
// 중첩 if문
boolean flag = true;
int number = 2;
if (flag) {
System.out.println("true");
if (number == 1) {
System.out.println("flag is true, number is 1");
} else if (number == 2) {
System.out.println("flag is true, number is 2");
} else {
System.out.println("flag is true, number is 모른다");
}
else{
System.out.println("false");
}
}
}}
[2] 해결한 코드
public class W09 {
public static void main(String[] args) {
// 중첩 if문
boolean flag = true;
int number = 2;
if (flag) {
System.out.println("true");
if (number == 1) {
System.out.println("flag is true, number is 1");
} else if (number == 2) {
System.out.println("flag is true, number is 2");
} else {
System.out.println("flag is true, number is 모른다");
}
}
else{
System.out.println("false");
}
}
}