java - java中如何每行输出多个数字

标签 java loops for-loop while-loop

嗨,我是编程新手,所以请不要 mock 我愚蠢的问题。

我编写的程序要求用户输入一个数字,然后程序应该输出从0到输入数字的所有数字(无论是正数还是负数)。 我尝试了3个不同的版本

这是我的代码:

int min = Integer.MIN_VALUE;
int max = Integer.MAX_VALUE;
int num = PutiL.validNum(min, max, "number");
//this my utility methode which check if number is in range and if it is not a double or letter
int i = 0, z;
int y = 0;

//3rd version
while (i <= num) {
    for (z = 0; z < 4; z++) {
        System.out.print(i + " ");
        i++;
    }
    System.out.println();
}

//2nd version
if (num > 0) {
    for (i = 0; i <= num; y++) {
        for (z = 0; z < 4; z++) {
           System.out.print(i + ",");
            i++;
        }
        System.out.println();
    }
} else {
    for (i = 0; i > num; y--) {
        for (z = 0; z < 4; z++) {
           System.out.print(i + ",");
            i--;
        }
        System.out.println();
    }
}

//1st version`enter code here`
if (num > 0) {
    for (i = 0; i <= num; i++)
    {
       System.out.print(i + ",");
    }
} else {
    for (i = 0; i >= num; i--) {
        System.out.print(i + ",");
    }
}
System.out.println();

问题是代码在用户输入数字后不会立即停止。有人会告诉我哪里出了问题吗,因为我没有更多的想法了。

这是 PutilL 方法

public static int validNum(int min, int max, String words) {
    int num;

    do {
        System.out.println("Please enter " + words);
        while (!kb.hasNextInt()) {
            System.out.println("Please re-enter ");
            kb.nextLine();
        }
        num = kb.nextInt();

        if (num < min || num > max) {
            System.out.println("Not in range - re-enter\tproper range is "
                    + min + " - " + max);
        }

    } while (num < min || num > max);
    return num;
}

最佳答案

//2nd version
if (num > 0)
{
    for (i = 0; i <= num; y++)  <== THIS MAKE INFINITE too, OKAY.. ^^, change i to stop
    {
        for (z = 0; z < 4; z++)
        {
           System.out.print(i + ",");
            i++;
        }
        System.out.println();
    }
} else
{
    for (i = 0; i > num; y--) <== THIS MAKE INFINITE LOOPS, OKAY.. ^^, it must i to stop
    {
        for (z = 0; z < 4; z++)
        {
           System.out.print(i + ",");
            i--;
        }
        System.out.println();
    }
}

如果答案正确,请不要忘记接受..^^

关于java - java中如何每行输出多个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16917392/

相关文章:

R:for循环输出仅保存输出数据帧中的最后结果

c - 意外的无限 for 循环

python - 如何从字典列表中获取字典的数据

java - 找出给定函数的时间复杂度

java - Java Thread.sleep()导致调整大小时JFrame闪烁

python - 在Python中检查列表中的元素时循环

java - 如何减少这个程序的执行时间

java - 是否可能以及如何使用 Jackcess 实现选择?

java - 实例化类返回空值

java - 如何在 Log.Severe() 中包装错误跟踪