比较'g'和103是否相等,代码哪里错了?

代码部分
public class A {
public static void main(String []args) {char a='g';short b=103;if((short)a=103){System.out.println("相等");}if((short)a<103&&(short)a>103){System.out.println("不相等");}
}
}

错误提示
Main.java:2: error: unexpected type
public static void main(String []args) {char a='g';short b=103;if((short)a=103){System.out.println("相等");}if((short)a<103&&(short)a>103){System.out.println("不相等");}
^
required: variable
found: value
1 error

该回答引用ChatGPT

在第四行中, (short)a=103 是一个赋值语句,应该使用相等运算符 == 来比较 a 是否等于 103,即改为 (short)a == 103,否则会导致编译错误。

以下是修正后的代码:


public class A {
    public static void main(String []args) {
        char a = 'g';
        short b = 103;
        if ((short)a == 103) {
            System.out.println("相等");
        }
        if ((short)a < 103 && (short)a > 103) {
            System.out.println("不相等");
        }
    }
}

首先,(short)a=103是个赋值,要改为==
其次,(short)a<103&&(short)a>103,一个数怎么可能小于103的同时大于103,这是恒假的
改为(short)a<103 || (short)a>103,或者(short)a!=103,或者直接写else即可