将在操作员条件下循环的程序



我正在编写一个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++;
            }
            }
        }

我认为问题出在代码块({} 之间的东西)。特别是看看while循环的行为方式。什么应该在循环中,什么不应该?此外,您的 if 语句为空。这;关闭由if处理的代码块。

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

if有一个杂散的尾随; 因此,下一行始终运行。

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

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

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

您还可以改善循环:

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

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

in while 循环只是改变

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

            }

试试这个

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++;
            }
        }
    }
}

最新更新