You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中输入M/F后条件判断仍走else分支的问题修复方法

问题原因与修复方案

你的代码核心问题出在字符常量的使用上:你把变量M和F初始化成了ASCII值为0的空字符,而不是代表性别标记的字符'M'和'F'。这就导致用户输入的'M'或'F'永远和这两个变量不相等,自然每次都会执行else分支。

修正后的代码

System.out.println("Please specify you're gender with M for male and F for female");                         
char gender = readertext.next().charAt(0);
if (gender == 'M') {
    System.out.println("You picked M");
} else if (gender == 'F') {
    System.out.println("You picked F");
} else {
    System.out.println("You did not choose M or F");
}

额外注意点

  • Java里字符常量必须用单引号'包裹,双引号是用来定义字符串的,别搞混
  • 完全没必要额外定义M、F变量,直接在条件判断里用'M'、'F'更清晰,也不会出错
  • 如果想兼容用户输入小写的m或f,可以先把输入转成大写再判断:
    char gender = Character.toUpperCase(readertext.next().charAt(0));
    

内容的提问来源于stack exchange,提问作者The Last AdmiraL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:54:33