Java 显示来自while循环的用户输入
我需要编写一个程序,提示用户输入哨兵值为-1的正整数。程序需要在单行上显示输入的整数(不包括-1),然后显示输入整数的总和。我已经做了一些搜索,看起来我需要创建一个列表来存储我想的数字?我还是个新手,不知道该怎么做。我试着用谷歌搜索,但这让我感到困惑。以下是我目前的代码:Java 显示来自while循环的用户输入,java,while-loop,Java,While Loop,我需要编写一个程序,提示用户输入哨兵值为-1的正整数。程序需要在单行上显示输入的整数(不包括-1),然后显示输入整数的总和。我已经做了一些搜索,看起来我需要创建一个列表来存储我想的数字?我还是个新手,不知道该怎么做。我试着用谷歌搜索,但这让我感到困惑。以下是我目前的代码: import java.util.Scanner; public class InputSum { public static void main(String[] args) { Scanner s
import java.util.Scanner;
public class InputSum {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter positive integers. Enter -1 to stop. ");
int number = scan.nextInt();
int sum = 0;
while (number != -1) {
if (number < -1) {
System.out.println("Invalid input. Try again.");
} else
sum += number;
number = scan.nextInt();
}
System.out.println("The sum: " + sum + ".");
}
}
import java.util.Scanner;
公共类输入和{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入正整数,输入-1停止”);
int number=scan.nextInt();
整数和=0;
while(数字!=-1){
如果(数字<-1){
System.out.println(“输入无效。请重试”);
}否则
总和+=数字;
number=scan.nextInt();
}
System.out.println(“总和:+sum+”);
}
}
顺便说一下,这是我第一次提交,如果我做错了什么,我很抱歉 您可以通过以下语句来实现:
import java.util.Scanner;
public class InputSum {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter positive integers. Enter -1 to stop. ");
int number = 0;
int sum = 0;
StringBuilder sb = new StringBuilder();
do{
try {
number = scan.nextInt();
if(number < -1){
System.out.println("Invalid input. Try again.");
}else if(number > -1){
sum += number;
sb.append(number + " ");
}
} catch (InputMismatchException e) { // handle invalid integers
System.out.println("Invalid input. Try again.");
}
}while (number != -1);
System.out.println("Numbers entered: " + sb.toString().trim() + ".");
System.out.println("The sum: " + sum + ".");
}
}
import java.util.Scanner;
公共类输入和{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入正整数,输入-1停止”);
整数=0;
整数和=0;
StringBuilder sb=新的StringBuilder();
做{
试一试{
number=scan.nextInt();
如果(数字<-1){
System.out.println(“输入无效。请重试”);
}否则如果(编号>-1){
总和+=数字;
某人附加(数字+“”);
}
}catch(InputMismatchException e){//处理无效整数
System.out.println(“输入无效。请重试”);
}
}while(number!=-1);
System.out.println(“输入的数字:“+sb.toString().trim()+”);
System.out.println(“总和:+sum+”);
}
}
这将迭代,直到用户输入-1。最后,它将显示正整数和输入的数字之和。我用a来累加数字。你也可以像你所说的那样使用一个列表,但我觉得这样更容易
编辑
下面是不使用try-catch块的另一种方法:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter positive integers. Enter -1 to stop. ");
int number = 0;
int sum = 0;
StringBuilder sb = new StringBuilder();
do{
if(scan.hasNextInt()){
number = scan.nextInt();
if(number < -1){
System.out.println("Invalid input. Try again.");
}else if(number > -1){
sum += number;
sb.append(number + ", ");
}
}else{
System.out.println("Invalid input. Try again.");
scan.next(); // reset the scanner
}
}while (number != -1);
System.out.println("Numbers entered: " + sb.delete(sb.length() - 2, sb.length()) + ".");
System.out.println("The sum: " + sum + ".");
}
publicstaticvoidmain(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入正整数,输入-1停止”);
整数=0;
整数和=0;
StringBuilder sb=新的StringBuilder();
做{
if(scan.hasNextInt()){
number=scan.nextInt();
如果(数字<-1){
System.out.println(“输入无效。请重试”);
}否则如果(编号>-1){
总和+=数字;
sb.附加(数字+“,”);
}
}否则{
System.out.println(“输入无效。请重试”);
scan.next();//重置扫描仪
}
}while(number!=-1);
System.out.println(“输入的数字:“+sb.delete(sb.length()-2,sb.length())+”);
System.out.println(“总和:+sum+”);
}
正如在这次的评论中提到的,我在读取输入之前使用它来验证输入是否是有效的整数。这是为了防止在用户输入无效整数时引发异常。我还用逗号分隔了数字。您可以使用StringBuilder来存储数字
import java.util.Scanner;
public class InputSum {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter positive integers. Enter -1 to stop. ");
int number = scan.nextInt();
int sum = 0;
StringBuilder sb = new StringBuilder();
while (number != -1) {
if (number < -1) {
System.out.println("Invalid input. Try again.");
} else
sum += number;
number = scan.nextInt();
sb.append(number + " + ");
}
System.out.println("The sum: " + sum + ".");
}
import java.util.Scanner;
公共类输入和{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入正整数,输入-1停止”);
int number=scan.nextInt();
整数和=0;
StringBuilder sb=新的StringBuilder();
while(数字!=-1){
如果(数字<-1){
System.out.println(“输入无效。请重试”);
}否则
总和+=数字;
number=scan.nextInt();
sb.追加(数字+“+”);
}
System.out.println(“总和:+sum+”);
}
}以下是有关收藏的教程:。但是你不需要一个整数列表就可以做到这一点。您只需创建一个字符串并将读取的数字连接到该字符串,然后在输入最后一个数字后打印该字符串。将数字放入ArrayList或类似容器中,然后在最后重复这些数字。老兄,这些东西现在让我很困惑。@Richard问这样一个广泛的问题的问题是有一百万种方法可以做到这一点,每种方法都有自己的优点/问题。你具体问的是哪一部分?我明白了,很抱歉。这是一个编程类。下面是作业的措辞:“设计并实现一个Java程序(命名为InputSum),提示用户输入正整数。该程序应接受整数,直到用户输入值-1(负数)。用户输入-1后,程序应显示输入的数字,然后显示其和。”如果使用字符串生成器,是否必须使用try-catch部分?我们还没有在课堂上讨论过这个问题,所以我不确定他是否会接受它。@Richard try-catch块它只是为了防止在用户输入无效整数(如4.65、10、2o)时出现不良结果。在这些情况下,scanner类中的方法抛出一个
inputmaschException
。try-catch块的另一种替代方法是在使用nextInt
method@Richard它用于处理用户的错误输入。真的,你的第一个例子应该使用它,但如果他们还没有教它,我就不讲了。如果用户