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");
            }
        }
    }