我正在编写一个Java程序,它将计数到用户输入的数字。用户只能输入 1-10 之间的数字。
例如:
如果用户输入6
则输出将为:
1 2 3 4 5 6
如何仅使用运算符和while
和if
语句来执行此操作?
这是我的代码。我一直在痛苦地试图弄清楚为什么我的代码不起作用。提前感谢!
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++;
}
}
}
}