java意外的返回值

问题描述:

这是我的程序的一部分,我想要求用户插入“真”或假“ 但我继续得到java unexpected return value,我只是无法找到一种方法来解决这个问题,我想要它到return价值我main方法java意外的返回值

private String Reply() { 
    Scanner input_reader = new Scanner(System.in); 
    System.out.print("true or false"); 
    String keyboard = null; 
    keyboard = input_reader.nextLine(); 

    while (keyboard != "True" | keyboard != "False") { //if the user dosent type true or false it will continue to ask for it 
     System.out.print("Please answer with T or F "); 
     Scanner newInput = new Scanner(System.in); 
     String a = newInput.nextLine(); 
     keyboard = a; 
     return keyboard; 

    } 
} 

生病感谢所有帮助!谢谢!

+0

你用==或比较的对象! =在这种情况下。改用#equals。 –

+0

首先用equal()函数比较字符串,然后在while循环中使用return语句...当条件失败时,循环会自动停止为什么你要返回值? – RohitS

+0

返回应该在你的方法 – RohitS

  • 使用字符串API,使用equals或equalsIgnoreCase方法,这是由于==方式运营商的工作,因为这将严格比较,如果两个ob项目是相同的,而不是那些对象的价值。写入字符串的.equals方法以执行字符串值比较。
  • 该逻辑设置为始终返回true。使用OR运算符,字符串总是不是“真”,或者不是“假”。
  • 你也想移动return语句跳出while循环,因为你不应该返回值,直到你完成循环:

    while (!(keyboard.trim().equalsIgnoreCase("True") || keyboard.trim().equalsIgnoreCase("False"))) { //if the user dosent type true or false it will continue to ask for it 
        System.out.print("Please answer with True or False "); 
        Scanner newInput = new Scanner(System.in); 
        String a = newInput.nextLine(); 
        keyboard = a;   
    } 
    return keyboard;