为了账号安全,请及时绑定邮箱和手机立即绑定

“else if”语句中的逻辑运算符

“else if”语句中的逻辑运算符

千万里不及你 2021-07-30 14:00:42
我正在尝试学习“if else”语句,但在脚本的中间“if else”部分遇到了问题。package practice;import java.util.Scanner;public class Practice {public static void main(String[] args) {    // TODO Auto-generated method stub    Scanner in = new Scanner(System.in);    System.out.println("enter a number between 1 and 10 ");    if (!in.hasNextDouble()) {        String word = in.next();        System.err.println(word + " is not a number");    } else if (!(in.nextDouble() > 0) || !(in.nextDouble() <= 10)) {        Double wrongnumber = in.nextDouble();        System.err.println(wrongnumber + " is not between 1 and 10");    } else {        System.out.println("It works!");    }       return;   } }没有错误,但在 'else if' 块中,我无法打印错误“..... 不在 1 和 10 之间”,无论我是否在 1 和 10 之间或更大的范围内输入数字。它也不会打印“它有效!” 当我添加'else if'块时不再行。任何建议将不胜感激。
查看完整描述

3 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

你打in.hasNextDouble()了几次电话。每次它都会从输入中扫描新号码,因此可能会导致您的问题。您还应该考虑如何编写条件。我知道您可以尝试一下那里发生的事情,但这种情况很难阅读。您可以使用

(number <= 1) || (number > 10) (通过反转运算符删除否定)例如。


查看完整回答
反对 回复 2021-08-04
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

else if (!(in.nextDouble() > 0) || !(in.nextDouble() <= 10)) {
    Double wrongnumber = in.nextDouble();
  1. 我不确定,但在这里你操作 3 个不同的数字。在条件之前,将其写入变量。

  2. 不要将 int 与 double 进行比较


查看完整回答
反对 回复 2021-08-04
  • 3 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信