2015-06-14 68 views
0

这是一个输入日期27年6月(有逻辑正确),但仍然打印日期不正确(逻辑失败)的一部分。逻辑总是失败

我不明白为什么它仍然失败。

**Code:** 

Scanner date = new Scanner(System.in); 
Scanner month = new Scanner(System.in); 
System.out.println("Enter date"); 
int dat = date.nextInt(); 
String mon= "june"; 
//String month="feb"; 
System.out.println("now enter month"); 
String mont= month.nextLine(); 

if (dat== 27 && mont==mon) { 
    System.out.println("yes thats the correct date"); 
} 
else { 
    System.out.println("no thats not the correct date"); 
} 
+0

很多关于比较Java中的字符串的东西。总是一个很好的教训。 –

回答

0

你需要使用equals()代替==比较对象(包括字符串):

if (dat== 27 && mont.equals(mon)){ 
    // ... 
} 
0

,问题就在你的字符串比较,如果

String mont= month.nextLine(); 
if (dat== 27 && mont==mon){ 

mont==mon检查montmon是字面意思是同一个对象。使用mont.equals(mon)