오류 수정: Java에서 if 없이 Else
Mehvish Ashiq
2024년2월15일
오늘은 Java로 코드를 작성할 때 ‘if’ 없이 ’else’라고 말하는 오류에 대해 알아보겠습니다. 또한 이 오류의 원인을 파악하고 해결 방법을 찾을 것입니다.
Java에서 ‘if’가 없는 오류: 'else'
일반적으로 이러한 종류의 오류는 Java 프로그래밍 초보자가 직면합니다. 이 오류의 원인과 해결책을 찾기 전에 이 오류를 발생시키는 프로그램을 작성하고 이해해 봅시다.
따라서 우리가 Python 전문가이자 Java 초보자라고 가정합니다. 따라서 if-else
를 포함하는 Java 프로그램을 다음과 같이 작성합니다.
예제 코드:
// import libraries
import java.util.Scanner;
// decide future activity based on the current temperature
public class Test {
public static void main(String[] args) {
int temp;
Scanner scan = new Scanner(System.in);
System.out.println("What's the current temperature?");
temp = scan.nextInt();
if (temp > 95 || temp < 20)
;
System.out.println("Visit our shops");
else if (temp <= 95) if (temp >= 80) System.out.println("Swimming");
else if (temp >= 60) if (temp <= 80) System.out.println("Tennis");
else if (temp >= 40) if (temp < 60) System.out.println("Golf");
else if (temp < 40) if (temp >= 20) System.out.println("Sking");
} // end main()
} // end Test Class
오류:
이 프로그램에서는 사용자로부터 현재 온도를 얻고 현재 온도를 기반으로 향후 활동을 결정합니다. 위의 이미지는 NetBeans IDE가 컴파일 시간에 알리는 논리적 오류가 있음을 보여줍니다.
따라서 오류를 해결할 때까지 코드를 실행할 수도 없습니다. 이를 위해서는 아래의 가능한 이유를 알아야 합니다.
Java에서 오류: 'if'가 없는 'else'
의 이유
오류 자체는 Java 컴파일러가 else
문과 연관된 if
문을 찾을 수 없다는 설명입니다. else
문은 if
문과 연결되지 않으면 실행되지 않는다는 점을 기억하십시오.
따라서 가능한 이유는 다음과 같습니다.
- 첫 번째 이유는
else
블록 앞에if
블록을 쓰는 것을 잊었기 때문입니다. if
조건의 닫는 대괄호가 없습니다.- 세미콜론을 사용하여
if
문을 끝냅니다.
이 오류를 해결하는 방법은 무엇입니까? 다음 섹션을 살펴보겠습니다.
Java에서 오류: 'if'가 없는 'else'
수정
예제 코드:
// import libraries
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int temp;
Scanner scan = new Scanner(System.in);
System.out.println("What's the current temperature?");
temp = scan.nextInt();
if (temp > 95 || temp < 20) {
System.out.println("Visit our shops");
} // end if
else if (temp <= 95) {
if (temp >= 80) {
System.out.println("Swimming");
} // end if
else if (temp >= 60) {
if (temp <= 80) {
System.out.println("Tennis");
} // end if
else if (temp >= 40) {
if (temp < 60) {
System.out.println("Golf");
} // end if
else if (temp < 40) {
if (temp >= 20) {
System.out.println("Sking");
} // end if
} // end else-if
} // end else-if
} // end else-if
} // end else-if
} // end main()
} // end Test Class
출력:
What's the current temperature?
96
Visit our shops
if
문 끝에서 세미콜론(;
)을 제거하고 각 블록에 {}
를 배치하여 if
없이 else
라는 오류를 수정했습니다.
중괄호 {}
를 충분히 숙달하고 생략할 수 있는 위치를 알기 전까지는 사용하는 것이 좋습니다(블록에 단일 문이 있는 경우 생략할 수 있음).
작가: Mehvish Ashiq