我正在编写一个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++;
}
}
}
答案 0 :(得分:1)
我认为问题在于代码块({}之间的东西)。特别要看看while
- 循环的行为方式。什么应该在循环中,什么不是?此外,您的if
- 语句为空。的;关闭由if
处理的代码块。
IDE可以通过应用语法格式来帮助您检测这些错误。代码中的注释看起来像是来自Eclipse。试试ctrl-shift-f
(或在菜单中查找)。这会自动对代码进行格式化和缩进,这样可以更轻松地检测结构中的错误。
答案 1 :(得分:0)
首先,您的条件检查应使用or
和括号;并将0
分配给num1
,以防止在用户输入1-10范围之外的任何内容时循环运行:
if (num1 < 1 || num1 > 10){
num1=0;
}
你也可以改善你的循环:
while (num2 < num1) {
System.out.println( ""+ num2++ );
}
另外,正如user689893所说,检查{}
块。
答案 2 :(得分: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++;
}
}
}
}
答案 3 :(得分:0)
if
有一个迷路尾随;
因此,下一行是始终运行。
我要在{
/ }
中包含与条件语句和循环相关的单行语句。这有助于启动&amp;代码块结束清除。我之前关于代码缩进的评论也是识别代码块开始的位置的一个因素。端。
答案 4 :(得分:0)
在while循环中只需更改
while (num2 < num1){
if(num2==0)
System.out.println((num2 + 1));
else{
num2++;
System.out.println(num2);
}
}