用户输入使用while循环来存储数据

时间:2017-04-15 15:13:16

标签: java

请告诉我以下java代码有什么问题。

我正在尝试通过Scanner类对象收集用户的输入,然后使用while将其存储在array中,但如果我不提供{{{},那么它将是无限循环1}}条件,所以当输入等于" q" 时,我想break,但它没有工作。

break

4 个答案:

答案 0 :(得分:1)

您不会将String==进行比较。使用.equals()之类的

if (!x.equals("q")){

if (x.equals("q"))

注意:我认为您没有正确使用Scanner。您接受输入,但继续检查x,而不是输入。

答案 1 :(得分:0)

请勿比较x =="q"之类的字符串 在java中使用 .equals 函数进行字符串比较。 将代码替换为:x.equals("q") for x =="q"!x.equals("q") for x !="q"

答案 2 :(得分:0)

您没有从Scanner读取更新值。以下是更正格式和其他错误后更新的代码供您参考。另外,使用==方法进行字符串比较 - 而不是equals()符号 -

import java.util.*;

public class ProjectOne{ 

public static void main (String []arg ){

    ArrayList one = new ArrayList();
    Scanner input = new Scanner(System.in);
    System.out.println("Enter");
    String x = null;
    while ( input.hasNext()) {
      x = input.next();
      if (!x.equals("q")) {
          one.add(x);
      }
      if (x.equals("q")){
          break;
      }
  }
      System.out.println(one);
}

答案 3 :(得分:0)

扫描仪会在您输入之前读取所有内容 - 您输入的整行。

我认为这就是你所需要的:

import java.util.ArrayList;
import java.util.Scanner;

public class ProjectOne

{ public static void main (String []arg ){
    ArrayList  one = new ArrayList();
    Scanner input = new Scanner(System.in);
    System.out.println("Enter");
    String pattern;
    String x = input.next();
    while (true){
        String line = input.next();
        if(line.contains("q"))break;
        else{
            x = x + " " + line;
            }
    }
    System.out.println(x);
}