这是我的程序应该做的:这是一个带有循环的程序,允许用户输入一系列整数。用户应该输入-99来表示序列的结束。输入所有数字后,程序应该显示输入的最大和最小数字。
我的代码正在工作,但是就在它停止之前,它将max或min初始化为-99,而不是序列中的最后一个整数,然后结束。我能做些什么来阻止这一切?
代码如下:
public static void main(String[] args)
{
//Create a Scanner object for keyboard input.
Scanner keyboard = new Scanner(System.in);
//create variables
int maxInt = -1000; //number that will be the largest initialized very low
int minInt = 1000; //number that will be the smallest initialized very high
int input = 0; //to hold the user's integer entry
//loop for the user to enter as many integers as they want
while(input != -99)
{
//General Instructions and initialization of input
System.out.println("Enter an integer. "
+ "When you are finished, please enter -99.");
input = keyboard.nextInt();
if(input > maxInt)
{
maxInt = input;
}
else if(input < minInt)
{
minInt = input;
}
}
System.out.println("Your lowest number is: " + minInt);
System.out.println("Your highest number is: " + maxInt);
keyboard.close();
}
如果是您的哨兵控制值,则需要在为 -99 分配 maxInt 或 minInt 变量之前检查输入值。
例子
if ( input > maxInt && input != -99 )
{
maxInt = input;
}
else if ( input < minInt && input != -99 )
{
minInt = input;
}
您的输入被分配到while循环中,因此循环开始时还没有-99。因此,使用-99运行循环,然后在结束时停止。
js prettyprint-override">while (input != -99) {
System.out.println("Enter an integer. " + "When you are finished, please enter -99.");
input = keyboard.nextInt());
if (input == -99) {
break;
}
if (input > maxInt) {
maxInt = input;
} else if (input < minInt) {
minInt = input;
}
}
我只想让程序得到它的绝对值,并在ASCII表中打印它对应的字符。绝对值的原因是负数输入。
我有这个...我想知道如何用字母X结束循环。
我遇到了一个有趣的问题,我不明白发生了什么: 据我所知,我提供的单个整数参数可以解释为使用参数调用构造函数,也可以解释为使用初始化列表的构造函数。似乎只有当我提供左值时才调用initialiser_list构造函数,但当我提供r-value(至少是文字)时,构造函数。为什么会这样? 这也意味着: 结果仅为大小为1的向量; 结果是一个大小为num\u元素的向量,但我认为应该避免这种初始化,因为偶尔会
如果将最小值和最大值初始化为0,它将继续是最小值。我希望它在用户输入一系列整数后显示最大数字和最小数字。什么是合理的值? 此外,如果用户未输入任何数字,则不会显示“您没有输入任何数字”。 我的代码是:
输入:7282341 输出:8743221 接受一个数字 我需要从后面开始将这些数字合并到一起,但不确定具体要做什么。
对不起,我的英语,但是我应该如何运行错误信息而不重复3次? 这是原来的一个,如果我运行ERROR JOptionPane它将重复3次 这是当前的一个,if-else语句是错误的,因为我无法读取原始数据 我很抱歉,如果因为我的英语不好而让大家产生误解的话。