2015-10-19 112 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,見上面的代碼)。