如果语句始终给出相同的答案
|
import java.util.Scanner;
class Practice {
public static void main(String args[]) {
System.out.println(\"Enter the number of treats you have:\");
Scanner treatsScanner = new Scanner(System.in);
int treats = (treatsScanner.nextInt());
System.out.println(\"Enter the number of hamsters you have:\");
Scanner hamstersScanner = new Scanner(System.in);
int hamsters = (hamstersScanner.nextInt());
System.out.println(\"How many treats does each hamster need?\");
Scanner neededTreatsScanner = new Scanner(System.in);
int neededTreats = (neededTreatsScanner.nextInt());
int treatsPerHamster = treats / hamsters;
boolean enoughTreats = treatsPerHamster >= neededTreats;
if (enoughTreats = true) {
System.out.println(\"There are enough treats for all the hamsters!\");
}
else if (enoughTreats = false) {
System.out.println(\"Oh no! There aren\'t enough treats!\");
}
}
}
有人可以向我解释为什么该程序返回“所有仓鼠都有足够的食物!”,而不管是否需要“ neededTreats”>“ treatsPerHamster”?
谢谢。
没有找到相关结果
已邀请:
7 个回复
结乳
或者简单地:
矾醒忻
而不是
请记住,
是比较运算符,
是赋值运算符。 而且正如Mike所说,只有
就能帮到您。无需使用
运算符! 实际上,您根本不需要布尔变量
。您可以这样写您的条件:
荤碗
将值\'true \'分配给\'enoughTreats \',然后检查\'enoughTreats \'是否为true(始终是)。 相反,您想放
这样它将检查足够的Treats是对还是错。
撵穆
,而不是not4ѭ。
播匣扦阔食
通过使用
,您将are18ѭ分配给
。请改用
比较运算符。
陈獭
进入
您还可以通过以下简单输入以下代码来缩短代码并获得完全相同的效果:
如果您将布尔变量本身放在if语句的括号内,则if语句将检查其是否为真,因此您无需键入\'== true。\'还将代码中的else if语句替换为简单的\'else \',因为如果足够的变量not等于true,则else代码将自动执行,而无需您专门说明条件。
犀耽澄协吻
大括号不是真的必要 您可能需要考虑对
进行非零检查! 处理输入中的非整数和-ve数字 当
仅具有一次布尔检查时,不需要
,只需
就足够了