【发布时间】:2014-03-20 12:03:30
【问题描述】:
所以今天在课堂上,我们必须编写一个程序,要求输入介于或等于 -25 和 25 之间的值,并在输入超出这些值的数字时退出程序。当我尝试输入任何大于 25 或负值的数字时,程序崩溃并弹出错误报告。
所以这是我的问题,如何使这些负值起作用。我包含以下程序以帮助您愿意帮助解决此问题的任何人。
import java.util.Scanner;
public class Program2
{
public static void main(String[] args)
{
Scanner scan = new Scanner (System.in);
int occurrences[] = new int [51];
System.out.println ("Enter integers in the range if -25 through 25.");
System.out.print ("Signal end with a");
System.out.println ("number outside the range.");
int entered = scan.nextInt();
while (entered >= -25 && entered <= 25)
{
occurrences [entered] ++;
entered = scan.nextInt();
}
System.out.println ("Number\tTimes");
for (int check = -(25); check <= 25; check++)
if (occurrences [check] >= 1)
System.out.println (check + "\t" + occurrences [check]);
}
}
【问题讨论】:
-
“程序崩溃并弹出错误报告”它永远不会伤害您收到的非常具体的错误消息以及行号!
-
哇。这段代码至少有两个问题,任何不回答这两个问题的人都会立即被否决。领土多大?答案被撤回。
-
@John 我没有对你投反对票,但从我对其他答案的随机投反对票数量来看,你可能想冷静一下:)
-
@John - 负下标有问题。从您的回答来看,您认为不使用
hasNextInt()是个问题。但是,规范是程序应该只期望一系列整数;使用hasNextInt()是不必要的,因为处理非整数输入超出了要求(并且可能是 OP 未来分配的主题)。 (或者你的第二个代码问题是什么?) -
@TedHopp 我在问题的任何地方都看不到这样的假设。如果没有明确声明只输入整数,则您的假设无效。您可能是这门课的教授,并且有比我们更详细的规格吗?
标签: java negative-number