methods - Java编程练习“从参数到一”
问题描述
我是 Java 和所有编程的新手,所以我会尽我所能解释这一点。
我正在尝试创建一个简单的程序,其中包含一个调用参数以打印一系列降序数字的方法。这个数字序列从用户给定的数字开始,到 1 结束。
赋值如下: 在练习模板中创建如下方法:public static void printFromNumberToOne(int number)。它应该打印从作为参数传递的数字到一的数字。
例如
public static void main(String[] args) { printFromNumberToOne(5);
样本输出:5 4 3 2 1
当我运行到目前为止编写的程序来解决这个练习时,它从 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
.