0

我正在编写一个 java 程序,它将计算到用户输入的数字。用户只能输入 1-10 之间的数字。

例如:

如果用户输入6输出将是:

1 2 3 4 5 6

如何仅使用运算符和whileif语句来做到这一点?

这是我的代码。我一直在痛苦地试图弄清楚为什么我的代码不起作用。提前致谢!

import java.util.Scanner;

public class loop_lab {

    public static void main(String[] args) {
        System.out.println("Hi user, input any number that is between 1-10");{
            Scanner input = new Scanner(System.in);
            int num1 = input.nextInt();
            int num2 = 0;

            if (1<=num1 && num1>=10);
            num2=0;

            while (num2 < num1)
            System.out.println(""+(num2 + 1));
                num2++;

            }
            }
        }
4

5 回答 5

1

我认为问题在于代码块({} 之间的东西)。尤其是看看while​​-loop 的行为。什么应该在循环中,什么不是?此外,您的if-statement 是空的。这 ; 关闭由if.

IDE 可以通过应用语法格式来帮助您检测这些错误。您的代码中的注释看起来像是来自 Eclipse。尝试ctrl-shift-f(或在菜单中查找)。这会自动格式化和缩进你的代码,这样更容易检测结构中的错误。

于 2012-04-10T07:18:55.403 回答
0

首先,你的条件检查应该使用一个or和大括号;并分配0num1,以防止在用户输入 1-10 范围之外的任何内容时循环运行:

if (num1 < 1 || num1 > 10){
    num1=0;
}

你还可以改进你的循环:

while (num2 < num1) {
    System.out.println( ""+ num2++ );
}

另外,正如 user689893 所说,检查您的{}块。

于 2012-04-10T07:19:40.690 回答
0

试试这个

import java.util.Scanner;

public class loop_lab {
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println("Hi user, input any number that is between 1-10");
        Scanner input = new Scanner(System.in);
        int num1 = input.nextInt();
        int num2 = 1;

        if (1<=num1 && num1>=10){
            num2=1;

            while (num2 <= num1)
            {
                System.out.println("" + num2);
                num2++;
            }
        }
    }
}
于 2012-04-10T07:24:03.857 回答
0

在while循环中只是改变

 while (num2 < num1){
        if(num2==0)
         System.out.println((num2 + 1));
        else{
           num2++;
           System.out.println(num2);

        }


            }
于 2012-04-10T07:55:21.797 回答
0

if有一个杂散的尾随结果; ,下一行总是运行。

{我强调在/中包含与条件语句和循环有关的单行语句}。这有助于使代码块的开始和结束变得清晰。我之前关于代码缩进的评论也是确定代码块开始和结束位置的一个因素。

于 2012-04-10T07:25:44.157 回答