当前位置: 首页 > 知识库问答 >
问题:

当扫描仪编号最多为100且其总和也不会超过100时,如何进行循环

公孙宏远
2023-03-14
Scanner scanner = new Scanner(System.in);
System.out.println("Enter number");

int input = 0;
int sum = 0;
while (input != 100) {
    input  = scanner.nextInt();
    if (input + sum > 100)
        break;

    sum += input;
}

System.out.println("Sum of Numbers : " + sum);

我有以下任务:

>

  • 编写一个程序,要求用户输入一个数字。

    如果数字小于100,则要求用户输入另一个数字并将两者求和。

    继续要求用户输入数字,直到所有输入数字的总和至少为100。

    如果用户输入的第一个数字大于或等于100,请打印消息“此数字已超过100”,不要要求用户输入任何其他数字。

    我可以打印用户输入的数字总和,但我就是无法停止。即使我使用了break,它也会在100号之后中断。

  • 共有1个答案

    谢锦程
    2023-03-14

    使用do while循环可以更好地处理这个问题,它保证至少执行一次其块。

    以下是根据您的要求提供的示例代码:

    import java.util.Scanner;
    
    public class Main {
        public static void main(String args[]) {
            Scanner scanner = new Scanner(System.in);
    
            int input = 0;
            int sum = 0;
    
            do {
                System.out.print("Enter number: ");
                input = scanner.nextInt();
                if (input > 100) {
                    System.out.println("his number is already more than 100");
                    break;
                }
                if (sum + input <= 100)
                    sum += input;
    
            } while (sum < 100);
    
            System.out.println("Sum of Numbers : " + sum);
        }
    }
    

    示例运行:

    Enter number: 10
    Enter number: 20
    Enter number: 70
    Sum of Numbers : 100
    

    另一个示例运行:

    Enter number: 101
    his number is already more than 100
    Sum of Numbers : 0
    
     类似资料:
    • 我已经做了几个小时了!!!!赋值的更新指出,当用户输入的值超过100时,我们需要停止用户输入。不重写整个事情,我如何“循环”这个?我知道代码方法很重,但这是作业的要求。我想我的大脑只是java汤!任何帮助将是真棒:) } 如果我在计数器后输入,用户在第一次输入后收到此消息。。。我做错了什么!!!!!! 中断的问题是“JOptionPane.showMessageDialog(null,“您的数字之

    • 我有一个简单的Do-While循环,它使用的扫描器功能不正常。代码应该显示一个文本,提示用户输入字符串,用户输入字符串,然后程序再次显示相同的文本,并提示用户输入另一个字符串。 程序所做的是显示正确的消息,用户输入一个字符串,然后提示用户输入一个字符串,但用户输入之前没有文本。用户输入文本后,它就会正常工作。 查看我的代码,我看不出程序有任何理由在不向用户显示文本的情况下提示用户两次输入。

    • 嗨,我正在编写一个程序,它使用Scanner从用户那里获取输入,然后使用布尔方法检查输入的长度是否不超过六个字符。问题是,如果长度小于六个,我使用了while循环来不断请求输入;但是在第一次错误输入后,如果你插入一串六个字母或更长的字符串,循环仍然会继续。这是程序: 谢谢

    • 问题内容: 我已经在这里呆了几个小时了!分配的更新表明,当用户的值超过100时,我们需要停止用户输入。如果不重写整个内容,如何“循环”进行输入?我知道代码很繁琐,但这是分配的要求。我认为我的大脑只是java汤!任何帮助都是极好的 :) } 如果我在counter ++之后输入此消息,则用户在第一次输入后会收到此消息…我在做什么错!!!! 中断的问题是 “ JOptionPane.showMessa

    • 问题内容: 我正在使用扫描仪逐行读取文本文件,但是由于扫描仪遍历每个输入,因此如何获取行号?我的程序是这样的: 这很好用,但是例如: 我想知道它的行号,这意味着1,2,3在第1行中,而3,4,5在第2行中。我如何得到它? 问题答案: 在扫描程序执行操作时,您可以使用代替来跟踪行号。 注意: 由于扫描程序会先读取当前令牌,因此我最初发布的“明显”解决方案不起作用。 ~~~~

    • 问题内容: 我必须在 while 循环中显示Scanner输入:用户必须插入输入,直到他写下“ quit”为止。因此,我必须验证每个输入以检查他是否写出“ quit”。我怎样才能做到这一点? 这行不通。如何验证每个用户的输入? 问题答案: 问题是nextLine() “使该扫描程序前进到当前行之外”。因此,当您调用该条件并且不保存返回值时,您将丢失用户输入的那一行。对第3行的调用返回另一行。 您可