为什么我的代码不起作用? - 获取用户输入以启动for循环

时间:2013-02-25 23:27:08

标签: java string for-loop variable-assignment user-input

所以我有这个Java分配,我必须创建一个程序,如果用户输入“启动”,它开始for循环,这将打印“启动”100次。我搜索了我的代码是否有错误,但找不到任何错误。请帮助:)

提前致谢。

       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");

            }
        }   
    }
}

4 个答案:

答案 0 :(得分:3)

您应该使用equals而不是==

来比较字符串
if (input.equals(checker))

答案 1 :(得分:2)

 if(input == checker){

应该是

 if(input.equals(checker)){

使用equals()方法检查两个字符串对象是否相等。对于字符串(一般对象),==运算符检查两个引用是否引用同一对象

答案 2 :(得分:2)

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

if(checker.equals(input))

但是,对于for的值,从0到100,您的Initiated循环将打印x 101次。替换

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

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

答案 3 :(得分:0)

if(input == checker)

比较这两个变量是否具有相同的对象引用。即:指向同一个对象。

if(input.equals(checker))

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