【问题标题】:Logical operator in loops for javajava循环中的逻辑运算符
【发布时间】:2015-08-23 07:59:30
【问题描述】:

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


}

}

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

【问题讨论】:

  • 答案有什么问题?它的格式很差,并且有冗余代码。这是你的担心吗?
  • 你在哪里卡住了?
  • 您可能想要num<=8 代替>

标签: java algorithm loops operators


【解决方案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?

此外,在您的 while 条件下,您必须输入 num&lt;=8 而不是 num&gt;8

希望对你有所帮助!

【讨论】:

  • input.nextLine() 在这种情况下不是必需的。
  • num = input.nextInt();在这种情况下做同样的事情
  • @Codebender 但是考虑一下,它输入了一个错误的String。它会崩溃。使用这种方法可以避免它。
  • @Codebender 当然,如果他只是一个一个地添加数字而没有空格,那是不必要的。
【解决方案2】:

你把最后一个条件弄混了,应该是num&lt;=8,而不是num &gt; 8

您的循环应该继续,直到满足以下条件之一:

  • num == -5
  • num == 0
  • 数字 > 8

这相当于继续while:

  • num != -5
  • num != 0
  • num

如您所见,您写的条件中的最后一个表达式是错误的,应该是num &lt;= 8,而不是num &gt; 8

【讨论】:

    【解决方案3】:

    在您的 if 语句中,您说的是输入数字是否不是 -5、不是 0 或大于 8。

    这是你的错误:

    num&gt;8 更改为num&lt;=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);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 2020-04-04
      • 2015-02-12
      • 1970-01-01
      • 2014-01-01
      • 1970-01-01
      相关资源
      最近更新 更多