gpt4 book ai didi

java - 为什么需要 ==0,当我删除它时出现错误 "The operator && is undefined for the argument type(s) int, boolean"

转载 作者:行者123 更新时间:2023-11-29 08:24:32 27 4
gpt4 key购买 nike

好吧,所以我在看某人的闰年检查器代码,我想知道为什么他/她在 % 4 之后立即放置 ==0。还有为什么在这里使用 modulo(%)。如果你使用计算器要找到闰年,您需要使用除法 (/) 例如 2000/4 = 500 这样它会使 2000 年成为闰年..

import java.util.Scanner;

public class LeapChecker {
public void Check(){
Scanner input = new Scanner(System.in);

System.out.println("Type a year: ");
int year = input.nextInt();

if (year % 4 ==0 && (year % 100 !=0)){
System.out.println("The year is a leap year.");
}else if (year % 4 ==0 && (year % 100 ==0) && (year % 400 ==0) ){
System.out.println("The year is a leap year.");
}
else {
System.out.println("The year is not a leap year.");
}

}

public static void main(String[] args) {
LeapChecker leap = new LeapChecker();
leap.Check();
}
}

最佳答案

year % 4 的结果是一个 int .

&&运算符(和 || )仅为 boolean 操作数或可自动转换为 boolean 值的操作数定义(这意味着 Boolean 也可以使用)。

来自language spec :

Each operand of the conditional-and operator must be of type boolean or Boolean, or a compile-time error occurs.

int 没有隐式转换至 boolean (不同于其他语言,如 C、C++、Python 等)。这是一件好事:它迫使您明确表示转化。

因此,您必须自己进行 int 到 boolean 的转换 - 例如,使用 == 这样的关系运算符, >= , <等,或通过 int返回 boolean 值的方法。

关于java - 为什么需要 ==0,当我删除它时出现错误 "The operator && is undefined for the argument type(s) int, boolean",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54277727/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com