如果语句总是给出相同的答案

2022-01-19 00:00:00 if-statement boolean java
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"?

Can someone explain to me why this program returns "There are enough treats for all the hamsters!" regardless of whether "neededTreats" > "treatsPerHamster"?

谢谢.

推荐答案

您正在将值 true 分配给 enoughtreats.

You are assigning the value true to enoughtreats.

尝试使用相等运算符而不是赋值:

Try using the equality operator rather than assignment:

if (enoughtreats == true) {
...
}

或者简单地说:

if(enoughtreats) {
...
}

相关文章