2013-02-25 19 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)) 

检查输入是否与检查器具有相同的内容。这就是为什么它不工作:)

相关问题