当前位置: 首页 > 面试题库 >

读取输入,直到输入特定数字

余信然
2023-03-14
问题内容

当输入零作为输入时,我需要停止询问整数输入,并立即开始求和。当我键入零时,我的程序不会停止。我需要它停止并开始汇总它收集的所有输入。

这是我所拥有的:

public class Inttosum {

    public static void main(String[] args) {
        System.out.println("Enter an integer");
        Scanner kb = new Scanner(System.in);
        int askool = kb.nextInt();
        int sum = 0;
        int score = 0;


        while(askool != 0){
          score = kb.nextInt();
          sum += score;
        }
    }
}

///////////////有效的最终代码。谢谢!公共类Inttosum {

    public static void main(String[] args) {
        System.out.println("Enter an integer");

    Scanner kb = new Scanner(System.in);
    int sum = 0;
    int score = 0;
    do {
        score = kb.nextInt();
        sum += score;

    }while(score != 0);
    System.out.print(sum); 
 }
}

问题答案:

do-while

您正在使用一种称为askool循环条件的东西,但是score在循环中更新了变量。您可以使用do-while循环。更改

while(askool != 0){
    score = kb.nextInt();
    sum += score;
}

do {
    score = kb.nextInt();
    sum += score;
}while(score != 0);

使用 break

我也建议先打电话Scanner.hasNextInt()再打电话nextInt。而且,由于您不使用score(只是sum),因此可以这样写:

int sum = 0;
while (kb.hasNextInt()) {
    int score = kb.nextInt();
    if (score == 0) {
        break;
    }
    sum += score;
}
System.out.print(sum);

如果用户输入文本,该命令也将停止(并且仍然是sum全部int)。



 类似资料:
  • 问题内容: 我正在学习Go。 我的程序应该从stdin中读取数据,直到我输入一个单句点的行。 我应该如何修改for循环,以在输入单个点时停止程序? 我试图用for语句实现while循环,我的方法是否有问题,条件是否错误,还是ReadString弄乱了我的数据? 问题答案: … ReadString弄乱了我的数据吗? 不,不是。它正在阅读下一个。这意味着一行上只有一个点的行将具有数据或取决于操作系统

  • 问题内容: 在C ++中,如果我想读取输入直到EOF,则可以按以下方式进行操作 然后,我可以将这段代码作为./a.out <input.txt来运行。此代码的java等价物是什么? 问题答案: 你可以这样做:

  • 首先要说的是,我对stackoverflow中的“提问”还不熟悉,所以如果我的问题不属于正确的类别,或者已经有人问过类似的问题,我表示歉意。我试图找到一个相关的问题,但我找不到。我的有点特别,这将作为我将来编程的一个例子。 我尝试创建的简单程序的流程是: > 起始编号为的,例如0 该数字递增1,直到该数字增加到100个数字,此时... 程序询问"Y/N"是否是,然后重复步骤1和2(每次重复这个过程

  • 问题内容: 我正在尝试编写一个数字猜测程序,如下所示: 我现在想做的是让if / elif / else命令序列循环执行,直到用户输入“正确”为止,即程序声明的数字大约等于用户数,但是如果我不知道用户数量,我无法想到如何实现和if语句,并且尝试使用“ while”也无效。 问题答案: 作为@Mark Byers方法的替代方法,可以使用:

  • 问题内容: 我正在编写一个连接到servlet的程序,这要感谢a,但是我在检查url时卡住了 我得到了错误: java.net.ProtocolException:读取输入后无法写入输出。 如果我用注释中的代码检查网址,但不幸的是它可以正常工作,我需要检查网址,所以我认为问题出在方法上,但我不知道如何解决 非常感谢你 问题答案: HTTP协议基于请求-响应模式:首先发送请求,然后服务器响应。服务器

  • 我尝试使用getch()和kbsit()读取用户的输入,但它似乎无法识别按键被按下。 此代码打印“开始”,按下键时不打印任何内容。使用getch()读取和打印哪怕一个字符,而不使用循环,我都不走运。