我想编写反向输出我输入范围的数字的代码。
首先我输入11
,第二个5
。然后我的程序打印5, 6, 7, 8, 9, 10, 11
而不是反转输出11, 10, 9, 8, 7, 6, 5
。
for-statement 中有什么问题吗?非常感谢您的帮助。
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);
}
答案 0 :(得分:1)
这相对容易。让我们仔细分析您的代码,然后您会立即看到&#34; 为什么&#34;。
首先输入 11 ,它会保存在min
内。然后输入 5 ,将其保存在max
内。
现在你进行迭代,然后从max
开始,从增加到min
。当我们现在输入值时,我们会从 5 (max
)迭代到 11 (min
)。
您需要将其反转并正确输入 5 至min
和 11 至max
。然后减少您的计数器,而不是使用i--
而不是i++
增加计数器。您的停止标准也是如此,只要您的计数器 您的min
值,就需要将其反转。
所以循环看起来像:
for (int i = max; i >= min; i--)
{
System.out.println(i);
}
答案 1 :(得分:0)
以降序打印数字
select product.model, pc.model
from product left join pc
on product.model = pc.model
where pc.model is null;
有了这个你不需要限制用户输入第一个数字作为最小值或第二个数字作为最大值无论你输入什么,你将得到降序响应
答案 2 :(得分:0)
从i
递减而不是递增:
for (int i = max; i >= min; i--) {
System.out.println(i);
}