我是Java和所有编程领域的新手,所以我将尽我所能解释。
我正在尝试创建一个简单的程序,该程序包含一个方法,该方法调用参数以打印一个降序序列。此数字序列从用户给定的数字开始,到1为止。
分配如下:在练习模板中创建以下方法:public static void printFromNumberToOne(int number)。它应该打印从作为参数传递的数字到1的数字。
例如
public static void main(String [] args){ printFromNumberToOne(5);
样本输出:54321
运行我到目前为止编写的用于解决该问题的程序时,它从5开始,然后无限地下降到1以上,变为负整数(5,4,3,2,1,0,-1,-2,- 3,∞...)
我需要插入一个中断,或者一旦i = 0,循环就停止运行的条件,但是我不知道如何在不收到错误消息的情况下执行此操作。我要去哪里错了?
这里是有问题的方法参数:
public static void printFromNumbertoOne(int num) {
int i = 5;
while (i <= num) {
System.out.println(i--);
在Java中,只要其条件(在您的情况下为while
)为i <= num
,true
循环将继续运行。使用i--
,您将在循环的每次运行中减少i
,并且由于在您的示例中i
从5开始并且num
也为5,因此i <= num
始终为true
,并且循环将永远运行。
我建议改用while (num > 0)
,然后将下一行更改为System.out.println(num--);
。因此,只要num
大于0,并且每次循环运行时num
都会减小,循环就会运行。
请注意,如果以printFromNumbertoOne(-5);
中的负值启动该功能,则该版本仍将永远运行。要解决此问题,还应检查num
是否为正。
编辑:对不起,昨天我有点累。它实际上不会永远运行,而是当while (num > 0)
为负或0时,循环num
不会运行,因为条件永远不会是true
。