我为搜索器设置了一个char值,它不会正确执行for循环

时间:2016-02-10 23:07:15

标签: java eclipse

为什么这个程序不起作用,我基本上设置了一个扫描仪,如果扫描仪提取的char值不等于S,它应该永远循环。为什么不呢?

public class Practice {
    public static void main(String[] args) throws IOException {
        System.out.println("Press S to Stop");

        char i;
        Scanner ScanMe=new Scanner(System.in);
        i=ScanMe.next().charAt(0);
        System.out.println(i);

        for(i=0;i !='S';i++){
            System.out.println("hello forever");
        }
        System.out.println("You did not press S");
    }
}

3 个答案:

答案 0 :(得分:1)

你有很多错误,首先,你宣布char i然后在循环中设置i=0(记住,i是一个字符),并且然后你甚至尝试在i++中增加它。

为您的目的将循环更改为此类:

while(i !='S') {
    System.out.println("hello forever");
}

答案 1 :(得分:1)

1)。您将扫描仪中的字符输入i,然后初始化(i = 0)。为什么呢?

2)。句子“你没有按S”将始终打印。

如果您尝试打印消息“hello forever”,如果用户输入'S',那么只需使用简单的if-else。

public class Practice {
public static void main(String[] args) throws IOException {

      char i;
      System.out.println("Press S to Stop");


     Scanner ScanMe=new Scanner(System.in);
     i=ScanMe.next().charAt(0);
     System.out.println(i);

     if(i == 'S'){
     System.out.println("hello forever");
     }else{
       System.out.println("You did not press S");
      }
   }
}

答案 2 :(得分:0)

我想出了没有任何操作的正确方法。 Shafeen是最有帮助的谢谢你!

        System.out.println("Press S to Stop");

char i,x;
Scanner ScanMe=new Scanner(System.in);
i=ScanMe.next().charAt(0);
x=i;

System.out.println(i);

for(i=0;x !='S';i++){
System.out.println("hello forever");
}
System.out.println("You did not press S");

}
}