为何我的年龄判断程序输入符合条件值时,同时输出if和else结果?
问题分析与解决:年龄判断程序同时输出两个结果
你的代码核心问题是没有把两个输出逻辑放在互斥的分支结构里,导致符合age>=18条件时,"Disqualified"的输出语句依然被执行。
典型错误场景
最常见的两种错误写法:
- 缩进/代码块范围错误(以Python为例):
age = int(input("Enter age: ")) if age >= 18: print("Qualified") print("Disqualified") # 此语句不在if分支内,会无条件执行
- 分支结构错误(以Java/C++为例,忘记用大括号包裹分支内容):
int age = 21; if (age >= 18) System.out.println("Qualified"); System.out.println("Disqualified"); // 不在if块中,必然执行
正确写法
使用if-else互斥分支,确保两个输出只会触发一个:
- Python版本:
age = int(input("Enter age: ")) if age >= 18: print("Qualified") else: print("Disqualified")
- Java版本:
int age = Integer.parseInt(System.console().readLine()); if (age >= 18) { System.out.println("Qualified"); } else { System.out.println("Disqualified"); }
这样当age>=18为真时,仅执行if块内的输出,else分支不会被触发,就不会出现自相矛盾的输出了。
内容的提问来源于stack exchange,提问作者He-Man1350
相关产品推荐
相关产品推荐

