import java.util.Scanner;
public class DivideTwo
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
int numerator;
int denominator;
System.out.println("This program divides two numbers.");
System.out.print("Enter the numerator: ");
numerator = keyboard.nextInt();
System.out.print("Enter the denominator: ");
denominator = keyboard.nextInt();
System.out.print(numerator + "/" + denominator + " = ");
if (denominator = 0)
System.out.println("Division by zero is not allowed.");
else
System.out.println((double)numerator/denominator);
我的if(denominator = 0)行表示它是一个不兼容的类型,我收到编译错误,请解释并帮助!
答案 0 :(得分:2)
您应该使用
if (denominator == 0)
==
用于检查基本类型中的相等性,=
用于为变量赋值。
if语句需要表达式类型为boolean。
答案 1 :(得分:1)
单个“=”用于为变量赋值。例如:
int Num = 0
双“==”用于将一种数据类型与另一种数据类型进行比较:
if(Num==0){}
答案 2 :(得分:1)
正如@KugathasanAbimaran解释的那样,您需要使用==
来测试相等性,而不是=
。
“不兼容类型”错误的原因是denominator = 0
实际上是一个有效的表达式,其值为0
。但if
语句的条件需要一个类型为boolean
...且0
不是boolean
值的表达式。
事实上,在C / C ++中,if (denominator = 0)
是合法的......并且可能一个错误,假设您实际上只是试图测试denominator
反对0
。 '它实际实际上做的是评估0
并将0
分配给'分母'。哎哟!!!
答案 3 :(得分:1)
看来你是初学者,
你应该看到HERE 找到Java运算符列表及其用法(含义)。 在您的代码中:
if (denominator = 0)
System.out.println("Division by zero is not allowed.");
你告诉你的程序为分母(int类型)赋值为零,而if()条件对布尔值进行操作,为了你的目的,你应该写
if (denominator == 0)
System.out.println("Division by zero is not allowed.");
'=='被称为等于运算符并返回一个布尔值(如果值等于指定值,则为true,如果不相等则为false)