2016-09-27 8 views
0

나는 데 문제 음수로 변환하고, 나는 그것이 논리적 오류 알고 문제를 알아낼 수 없습니다하지만 난 그것을 알아낼 수없는 것, 모든 결과는 0자바 코드로 0

로 끝

코드 :

import java.util.Scanner; 

public class ConvertNegative { 
    public static void main (String [] args) { 
     int userNum = 0; 

     if (userNum >= 0) 
     System.out.println("Non-negative"); 
     else 
     System.out.println("Negative; converting to 0"); 
     userNum = 0; 
     System.out.format("Final: %d", userNum); 
     System.out.println(""); 

     return; 
    } 
} 

나는, 덕분에 어떤 도움을 감사하겠습니다. 당신이 다중 회선 상태가있는 경우

+5

그래, 당신은 제로를 유지 물론 0으로 userNum을 설정하여 시작 – 3kings

+3

대괄호가 없습니다 도움이 될 것입니다. 어디에서 정보를 얻을 수 있습니까? – clay

답변

5

은/루프 당신은 괄호를 설정해야합니다. 대괄호가 없으면 else 블록은 그 뒤에 첫 번째 명령문을 실행합니다. 귀하의 케이스 System.out.println("Negative; converting to 0");합니다. 다음 줄이 더 이상 다른 블록의 일부가 될 것 같은 어떤 경우 당신의 변수 userName에서 은 0으로 설정됩니다. 이상 1 개 라인 = 브래킷.

public class ConvertNegative { 
    public static void main (String [] args) { 
     int userNum = 0; 

     if (userNum >= 0) 
      System.out.println("Non-negative"); 
     else{ 
      System.out.println("Negative; converting to 0"); 
      userNum = 0; 
      System.out.format("Final: %d", userNum); 
      System.out.println(""); 
     } 
     //return; -> There is no need for the return as the main method has no return value. 
    } 
} 
0

else 블록에 중괄호가 누락되었습니다. 당신은 당신의 다른 두 개 이상의 문장이있는 경우 중괄호를 제공해야합니다. 또한 사용자로부터 가치를 얻지 못했습니다. 주된 방법은 무효이므로 return 문이 필요 없습니다.

희망 다음 코드는

import java.util.Scanner; 

public class ConvertNegative { 
    public static void main (String [] args) { 
     Scanner s = new Scanner(System.in); 
     System.out.print("Enter a number...."); 
     int userNum = s.nextInt(); 

     if (userNum >= 0) 
     System.out.println("Non-negative"); 
     else{ 
     System.out.println("Negative; converting to 0"); 
     userNum = 0; 
     System.out.format("Final: %d", userNum); 
     System.out.println(""); 
     } 
    } 
}