java中循环的逻辑运算符

时间:2015-08-23 07:59:31

标签: java algorithm loops operators

编写一个程序,持续提示用户从键盘输入整数。当输入的整数为-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);
    }


}

}

从这开始,但无法完成它。帮助

3 个答案:

答案 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 == -5
  • num == 0
  • num&gt; 8

这相当于继续:

  • num!= -5
  • num!= 0
  • num&lt; = 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);
        }
    }
}