我希望我的代码列出用户输入,即每个整数,问题是它只列出最后一个用户输入。我们没有在我的类中使用数组,所以我用它来解决问题。程序将打印一行,列出每个整数后跟逗号,然后在另一行上打印总和。请帮忙。
sorted(table_rows, key=lambda x:x(list_items), reverse=rev)
答案 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);
}
}