当前位置: 首页 > 知识库问答 >
问题:

无法得到'不相等'操作数识别的char[重复]

仇正豪
2023-03-14

编程新手,刚刚开始使用Java。我拿不到那张票要使用字符的操作数。这与while循环有关。即使放置了正确的输入。循环不断地说,这是一个无效的输入,尽管正确的输入被放置。

输入被正确识别并转换为大写。但是同时循环不起作用。任何建议将不胜感激!

    Scanner keyboard = new Scanner(System.in); //Create object to read user data

    System.out.println("Please enter your age between 1 - 110");
    age = keyboard.nextInt();
    while((age < 1) || (age > 110)){
        System.out.println("Error please input a valid age");
        System.out.println("");
        System.out.println("Please enter your age between 1 - 110");
        age = keyboard.nextInt();
    }

    System.out.println("Please enter this person's gender (M/F)");
    gender = keyboard.next().charAt(0);
    gender = Character.toUpperCase(gender); // Convert all inputted character to upper case

    while((gender != 'M') || (gender != 'F')){
        System.out.println("Error please input a valid gender");
        System.out.println("");
        System.out.println("Please enter this person's gender (M/F)");
        gender = keyboard.next().charAt(0);
        gender = Character.toUpperCase(gender); // Convert all inputted character to upper case 
    }


    System.out.println("Please enter whether this person watches the show regularly (Y/N");
    show = keyboard.next().charAt(0);
    show = Character.toUpperCase(show); // Convert show to upper case


    while((show != 'Y') || (show != 'N')){
        System.out.println("Error - input invalid");
        System.out.println("");
        System.out.println("Please enter whether this person watches the show regularly (Y/N");
        show = keyboard.next().charAt(0);
        show = Character.toUpperCase(show); // Convert show to upper case
    }

    System.out.println("Do you want to enter another person's details (Y/N)?");
    details = keyboard.next().charAt(0);
    details = Character.toUpperCase(details);

    while((details != 'Y') || (details != 'N')){
        System.out.println("Error - Invalid input");
        System.out.println("");
        System.out.println("Do you want to enter another person's details (Y/N)?");
        details = keyboard.next().charAt(0);
        details = Character.toUpperCase(details);
    }

共有2个答案

邴景山
2023-03-14

条件(gender!=“M”)|(gender!=“F”)永远不能为假。如果gender'M',那么gender!='F'将为真,且满足OR条件。如果gender'F',那么gender!='M'将为真,并且满足OR条件。

你想要

while (gender != 'M' && gender != 'F') {
    // ...
}

段干子晋
2023-03-14

性别MF或其他有3种可能性。让我们看看

| Gender | gender != 'M' | gender != 'F'| (gender != 'M') || (gender != 'F') |
| 'M'    | False         | True         | True                               | 
| 'F'    | True          | False        | True                               | 
| Other  | True          | True         | True                               | 

这意味着对于任何性别的转换将永远是True

 类似资料:
  • 我有以下疑问: 问题是使用。就地查询返回错误: 下面是db fiddle,它表明了这个问题: https://www.db-fiddle.com/f/vUBjUyKDUNLWzySHKCKcXA/1 我怎样才能解决这个问题?

  • 当我尝试在Pandas的applymap函数中使用参数“na_action”时,我得到了以下错误: TypeError:applymap()获得意外的关键字参数“na_action” 例子: 类型错误。回溯(最近一次呼叫最后一次) 在1个显示器中显示(df\U复制) 2个df。iloc[0,0]=pd。NA ---- TypeError:applymap()获得意外的关键字参数“na_action

  • 本文向大家介绍javascript中的相等操作符(==与===区别),包括了javascript中的相等操作符(==与===区别)的使用技巧和注意事项,需要的朋友参考一下 1.前言 我们在编程的过程中,经常会遇到判断两个变量是否相等的情况,ECMAscript提供了两种相等操作符”==”和”===”来判断,这两种操作都会返回一个boolean值。一般来说,我们把”==”称之为相等,称”===”为全

  • 确定两个变量是否相等是编程中的一个非常重要的操作。在比较字符串、数值和布尔值的相等性时,问题还比较简单。但在涉及到对象的比较时,问题就变得复杂了。最早的 ECMAScript 中的相等和不等操作符会在执行比较之前,先将对象转换成相似的类型。后来,有人提出了这种转换到底是否合理的质疑。最后, ECMAScript 的解决方案就是提供两组操作符: 相等和不相等——先转换再比较, 全等和不全等——仅比较

  • 我有下面的代码,它基本上将表从MySql数据库读入Google云存储,然后读入Google大查询。 我已将连接详细信息以及MySQL和GCP的服务帐户都包含在该应用程序的admin选项卡中。 我看到MySql数据库中的表time_zone被复制到云存储桶airflow_1。但是当气流试图将数据从云存储复制到BigQuery时,它会抱怨无法找到云存储桶。以下是日志详细信息:

  • 我有一个小麻烦使用的日期。 我想我已经先用jquery声明了我的源代码,然后用datatable声明了我的源代码(我在他们的网站上检索包含最新版本的链接),但是当我加载网页时,我总是会收到相同的错误消息: 未捕获的语法错误:意外的标记{jQuery。延迟的异常:$(…)。DataTable不是函数类型错误:$(…)。DataTable不是一个函数 这显然是一个已知的问题,经过一些研究后我意识到了这