如何在while循环中列出用户输入?

时间:2015-10-03 21:46:15

标签: java list loops input while-loop

我希望我的代码列出用户输入,即每个整数,问题是它只列出最后一个用户输入。我们没有在我的类中使用数组,所以我用它来解决问题。程序将打印一行,列出每个整数后跟逗号,然后在另一行上打印总和。请帮忙。

sorted(table_rows, key=lambda x:x(list_items), reverse=rev)

2 个答案:

答案 0 :(得分:3)

你打电话

  System.out.print(data +", ");

最后只有一次,所以它只打印最后一个输入。您应该在调用while之前将其添加到data = input.nextInt();循环中。此外,您不需要此示例中的y变量,sum应初始化为0而非-1,以使代码更易于阅读。

public class InputSum {
   public static void main(String[] args) {
      int data;
      Scanner input = new Scanner(System.in);
      System.out.println("Enter an interger (The input end if it is -1): ");
      data = input.nextInt();

      int sum = 0;
      while (data != -1){
         sum+= data;
         System.out.println(
            "Enter an interger (The input end if it is -1): ");
         System.out.print(data +", ");
         data = input.nextInt();


      }
      System.out.println("The sum:" + sum);
   }
}

答案 1 :(得分:0)

可以在循环期间构建输出String,使用逗号添加每个数字。 最后,可以打印整个String:

import java.util.*;

public class InputSum {
   public static void main(String[] args) {
      int data;
      Scanner input = new Scanner(System.in);
      System.out.println("Enter an interger (The input end if it is -1): ");
      data = input.nextInt();
      double y =data;
      // constructing a string for output
      StringBuilder sb=new StringBuilder();
      int sum = 0;
      while (data != -1){
         sum+= data;
         // adding each number to the output String
         sb.append(data + ",");
         System.out.println(
            "Enter an interger (The input end if it is -1): ");
         data = input.nextInt();
      }
      sb.deleteCharAt(sb.length()-1);
      // the output is not a number, its a String
      System.out.print(sb.toString());
      System.out.println();
      System.out.println("The sum:" + sum);
   }
}