2014-11-04 23 views
0

我对Java很新,我试图让一个小代码工作,但我得到的消息“本地变量tal2可能没有定义“。我看到了这个问题,但我不确定如何解决它。JAVA如果其他程序退出,如果用户输入1 = 0,不起作用

如果第一个输入为0,程序应该打印行“谢谢”,否则让用户继续输入#2,然后运行第二个else if语句。

public static void main(String[] args) { 
    Scanner stdIn = new Scanner(System.in); 

    int tal1; 
    int tal2; 

    tal1 = stdIn.nextInt(); 
    if (tal1 == 0) { 
     System.out.println("Thank you."); 
    } else { 
    tal2 = stdIn.nextInt(); 
    } 

    if (tal1 > tal2) { 
      System.out.println(tal1 + " is greater than " + tal2); 
    } else { 
     System.out.println(tal2 + " is greater than " + tal1); 
    } 

    } 

回答

4

你没有打电话给System.exit()像你大概意思。

if (tal1 == 0) { 
    System.out.println("Thank you."); 
    System.exit(0); 
} 

您可能还只是return;

或者,你可能你的代码

} else { 
    tal2 = stdIn.nextInt(); 
    if (tal1 > tal2) { 
    System.out.println(tal1 + " is greater than " + tal2); 
    } else { 
    System.out.println(tal2 + " is greater than " + tal1); 
    } 
} 
+0

哇,太简单了!它完美的作品,非常感谢您的帮助! – user2868900 2014-11-04 21:56:37

0

您的tal2声明更改为:

int tal2=0; 
0

改线4移动你的其他语句到你的第一个else块以下int tal2 =-100;

0

初始化你的变量,因为它们是局部变量,它应该始终是初始化的。

int tal1 = 0;
int tal2 = 0;

如果您想退出系统,您需要致电System.exit(0)

0

因为第二个输入语句在第一个else块内。所以如果你输入0作为第一个输入,那么第一个bock将不会被执行,并且它不会再次请求输入,并且会转到第二个输入的else bock。所以把第二个输入语句放在第一个if-else块之外。