首页 > 解决方案 > 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--); 

标签: methodswhile-loopprintingparametersbreak

解决方案


在 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.


推荐阅读