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

一种不断要求输入整数直到输入一个非整数的程序。它打印所有输入整数的总和以及尝试次数

姜卜霸
2023-03-14

这是我发现的一个编码挑战网站的问题。这是我的代码:

我需要做什么或改变什么来获得想要的输出。

import java.util.Scanner; 
   public class CopyOfInputLoop { 
        public static void main (String[] args)  { 
        Scanner scan = new Scanner(System.in); 
        System.out.println ("Enter an integer to continue or a non-integer value to finish. Then press return."); 
    
    //placeholder variables that change as user inputs values
    int attempts = 0;
    int values = 0;
    int total = 0;
    
    //adds the values input by the user and continues asking for an integer if another integer is input  
    while (scan.hasNextInt()) { 
        total += values;
        values = scan.nextInt(); 
        System.out.println("Enter an integer to continue or a non-integer value to finish. Then press return.");  
        attempts += 1;
    } 
    
    //ends the program when a non-integer is input and prints the number of attempts and the sum of all values
    String input = scan.next();      
    System.out.println ("You entered " + input + "!"); 
    System.out.println ("You had " + attempts + " attempts!"); 
    System.out.println("The sum of all your values is " + total);
} 

}

共有1个答案

越嘉石
2023-03-14

试试这个。

import java.util.Scanner;

class Main {
  public static void main(String[] args) {

    Scanner scan = new Scanner(System.in); 
    System.out.println ("Enter an integer to continue or a non-integer value to finish. Then press return.");
    
    //placeholder variables that change as user inputs values
    int attempts = 0;
    String value;
    int total = 0;
    
    //adds the values input by the user and continues asking for an integer if another integer is input  
    for (;;) {

      value = scan.next();

      try {

        total += Integer.valueOf(value);
         attempts++;
        System.out.println ("Enter an integer to continue or a non-integer value to finish. Then press return."); 
            
      } 
        
      //ends the program when a non-integer is input and prints the number of attempts and the sum of all values
      catch (Exception e) {

        attempts++;
        System.out.println ("You entered " + value + "!"); 
        System.out.println ("You had " + attempts + " attempts!"); 
        System.out.println("The sum of all your values is " + total + "!");
        break;

      }
    }
    scan.close();
  }
}
 类似资料:
  • 我正在做赫尔辛基大学的java MOOC,有一个练习要求我创建一个程序,让你输入你想要的数字,但是当你输入一个“0”时,它打印所有先前输入的数字的总和,并结束程序。当输入“0”时,我不知道如何“存储”输入数字以计算它们的总和。程序运行,但输入“0”将打印“0”。这就是我的代码的外观: 如何计算所有输入数字的总和?

  • 我试图在一个简单的测试程序中创建一个while循环。此程序用于对用户输入的所有整数求和,并在用户按“a”后显示此和并退出循环。如果用户输入的不是整数或“a”,则程序用于响应“无效输入。请重试”,并允许用户输入其他数字。 我的程序成功地对整数求和,但如果输入了“a”以外的非整数,循环将结束,而不允许用户输入其他值。以if(!cin)开头的代码块似乎没有任何作用。 我认为问题出在而不是。是否有替代方法

  • 问题内容: 这里的基本问题..我将首先要求您不要用任何代码响应,因为那样可能只会使我进一步困惑(对noob编程)。我正在寻找有关如何解决此问题的明确解释。 我有一台扫描仪,可以读取用户的输入。提示用户输入一个介于1到150之间的int值(仅整数)。我得到的值如下: 继续我的程序,一切正常。 不幸的是,代码并不是完全防弹的,因为任何非整数的输入都可能破坏它(字母,符号等)。 我如何使代码更健壮,可以

  • 格式如下所示: 输入:第一行包含一个整数T,表示测试用例的数量。第二行包含三个整数a、b和N 输出:对于每个测试用例,在新行中打印第N个数字。 样本输入 1 2 3 10

  • 问题内容: 我是JAVA的新手,我正在尝试将JTextField的输入转换为整数,我尝试了很多选项,但是没有任何作用,蚀总是给我一个错误,并且这些错误对我来说没有意义。 导入java.awt.Graphics; 导入java.awt.Color; 问题答案: 代替: 试试这个: 您不能解析为,但是 可以解析 其包含的 值 -文本。

  • 问题内容: 如何使用Go中的函数从标准输入获取整数输入? 如果使用无法完成此操作,那么读取单个整数的最佳方法是什么? 问题答案: http://golang.org/pkg/fmt/#Scanf Go中包含的所有库都有充分的文档记录。 话虽如此,我相信 绝招