编写一个程序,持续提示用户从键盘输入整数。当输入的整数为-5或0或大于8时,程序终止。在循环控制条件中使用逻辑'和'。仔细测试您的程序,以确保满足所有循环终止条件。
import java.util.Scanner;
公共课问题{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner (System.in);
int num;
System.out.print("Enter n (-5 or 0 to stop):");
do {
num = input.nextInt();
if ((num!=-5) && (num!=0) && (num>8)){
System.out.println("Integers: "+num);
}
}while ((num!=-5) && (num!=0) && (num>8)); {
System.out.println("Integers:" +num);
}
}
}
从这开始,但无法完成它。帮助
答案 0 :(得分:1)
如果您不希望Scanner
出现问题,则必须在input.nextLine()
input.nextInt()
而不存储值
import java.util.Scanner;
public class ques {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner (System.in);
int num;
System.out.print("Enter n (-5 or 0 to stop):");
do {
num = input.nextInt();
input.nextLine();
if ((num!=-5) && (num!=0) && (num>8)){
System.out.println("Integers: "+num);
}
}while ((num!=-5) && (num!=0) && (num<=8)); {
System.out.println("Integers:" +num);
}
}
}
如果您想知道为什么必须放input.nextLine()
,您可以看到我几个月前发布的答案:Why isn't the scanner input working?
此外,在您的状态下,您必须放置num<=8
而不是num>8
。
我希望它会对你有所帮助!
答案 1 :(得分:0)
您混淆了最后一个条件,它应该是num<=8
,而不是num > 8
。
您的循环应该继续,直到满足以下条件之一:
这相当于继续:
正如您所看到的,您编写的条件中的最后一个表达式是错误的,它应该是num <= 8
,而不是num > 8
。
答案 2 :(得分:0)
在你的if语句中,你是说输入数字不是-5,不是0或大于8。
这是你的错误:
将num>8
更改为num<=8
工作代码:
import java.util.Scanner;
public class ques
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner input = new Scanner (System.in);
int num;
System.out.print("Enter n (-5 or 0 to stop):");
do
{
num = input.nextInt();
if ((num!=-5) && (num!=0) && (num<=8))
{
System.out.println("Integers: "+num);
}
}while ((num!=-5) && (num!=0) && (num<=8));
{
System.out.println("Integers:" +num);
}
}
}