2013-02-25 18 views
0

所以我有這個Java分配,我必須創建一個程序,如果用戶輸入「啓動」,它將開始for循環,它將打印「啓動」100次。我查找了我的代碼中的錯誤,但找不到任何錯誤。請幫助:)爲什麼我的代碼不起作用? - 獲取用戶輸入來啓動for循環

在此先感謝。

 package container; 

     import java.util.Scanner; 

     public class Assignment1 { 


    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     int x = 0; 

     String checker = "initiate"; 

     Scanner scan = new Scanner(System.in); 
     String input = scan.nextLine();  
     if(input == checker){ 

      for(x=0;x<=100;x++){ 

       System.out.println("Initiated"); 

      } 
     } 
    } 
} 

回答

2

正如其他人所指出的那樣,使用equals方法比較字符串:

if(checker.equals(input)) 

然而,另外,你for循環將打印Initiated 101倍,爲x值從0到100替換

for(x=0;x<=100;x++) 

for(x=0;x<100;x++) 
+1

尖銳的眼睛!接得好 – 2013-02-25 23:34:07

2
if(input == checker){ 

應該

if(input.equals(checker)){ 

使用equals()方法檢查兩個字符串對象是相等的。 ==運營商的字符串(一般對象)的檢查情況下,如果兩個引用指向同一個對象

3

你應該使用的,而不是==

if (input.equals(checker)) 
+0

我正在閱讀的教程從未提及過任何這些方法,您爲我打開了一扇門:)謝謝。 – 2013-02-25 23:47:14

0

equals字符串比較應該使用input.equals(checker)而不是input == checker

0
if(input == checker) 

比較這兩個變量是否具有相同的對象引用。即:指向同一個對象。

if(input.equals(checker)) 

檢查輸入是否與檢查器具有相同的內容。這就是爲什麼它不工作:)

相關問題