用于报表打印



我想编写代码来反向输出我输入范围的数字。

首先我输入11,其次5。但是,我的程序然后打印5, 6, 7, 8, 9, 10, 11而不是反向输出11, 10, 9, 8, 7, 6, 5

我在陈述中做错了什么吗?感谢您的帮助。

Scanner reader = new Scanner(System.in);
System.out.println("Enter the first number");
int min = reader.nextInt();
System.out.println("Enter a second number");
int max = reader.nextInt();
for (int i = max; i < min + 1; i++)
{
System.out.println(i);
}

这相对容易。让我们仔细分析您的代码,然后您将立即看到">为什么"。

首先你输入一个11,它被保存在min中。之后,您输入5并将其保存在max中。

现在你迭代,你从max开始,从它们的增加到min.当我们现在输入值时,我们从5(max( 迭代到11(min(。

您需要反转并正确输入5min11max。之后,减少您的计数器,而不是用i--而不是i++来增加它。止损标准也是如此,只要您的计数器高于您的min值,它就需要被反转,因为您希望它迭代。

因此,循环如下所示:

for (int i = max; i >= min; i--)
{
System.out.println(i);
}

以降序打印数字

Scanner reader = new Scanner(System.in);
System.out.println("Enter the first number");
int first = reader.nextInt();
System.out.println("Enter a second number");
int second = reader.nextInt();
int min=Math.min(first,second);
int max=Math.max(first,second);
for (int i = max; i > min; i--)
{
System.out.println(i);
}

有了这个,您无需限制用户输入第一个数字作为最小值或第二个数字作为最大值,无论您输入什么,您都将按降序获得响应

i递减而不是递增:

for (int i = max; i >= min; i--) {
System.out.println(i);
}

最新更新