Java编程练习“从参数到一个” [关闭]

问题描述 投票:0回答:1

我是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--); 
methods while-loop printing parameters break
1个回答
1
投票

在Java中,只要其条件(在您的情况下为while)为i <= numtrue循环将继续运行。使用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

© www.soinside.com 2019 - 2024. All rights reserved.