2015-10-19 113 views
-2

我正在尝试编写一段简单的代码来通过BufferedReader获取输入,然后在另一个方法中执行一些代码。Java - 在If语句中使用方法

import java.io.*; 

public class main { 
    public main() { 

    } 
    public static String input() { 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     String out; 
     try { 
      out = br.readLine(); 
      return out; 
     } catch (IOException e) {  
      e.printStackTrace(); 
      return null; 
     } 
    } 
    public static void someCode() { 
     //some code 
    } 
    public static void main (String[] args) { 
     input(); 
     if(input() == "Input") { 
      someCode(); 
     } 
    } 
} 

谢谢:)

+1

有啥问题? –

+1

对不起,但是你很清楚你在问什么 - 如果你问什么,那就是。将来,请提出一个与您的问题有关的实际问题。如果您看到错误,请描述它们并显示所有错误消息。不要让我们猜测。 –

+2

一个问题 - 你永远不会创建一个Input变量。另一方面,不要使用'=='或'!='来比较字符串。改为使用“equals(...)”或“equalsIgnoreCase(...)”方法。理解'=='检查两个*对象引用*是否相同,而不是你感兴趣的。另一方面,方法检查两个字符串是否具有相同顺序的相同字符,这就是这里很重要。 –

回答

0

商店在这样的变量函数:

String x = input(); 
    if("Input".equals(x)) { 
    //do something 
    } 

还要注意我如何使用.equals没有====不在内存的值相比较不会忽略。

0

您正在调用该方法一次,将结果扔掉,然后再次调用它;第二次可能不会给你想要的结果。保存输入的变量,而不是:

String input = input(); 
if(input.equals("Input")) { 
    ... 
} 

(你也错误地使用==代替.equals,见上面的代码)。