碰到一个以前没注意过的问题关于boolean的“=”“==”的问题如题,如当我用if(BlnRun = true) {
//TODO
}时,我原本以为这样会出现语法错误,因为我是由int型的数值做这样判断时会报语法错误而得出的,比如if(IntA=1) {
//TODO
}这样会报语法错误,那为何if(BlnRun = true) {
//TODO
}没有语法错误呢?我后来稍微深入比较了一下,if(BlnRun = true) {
//TODO
}与if(BlnRun == true) {
//TODO
}的区别,发现,它们的执行结果不一样,为什么?
真是惭愧啊,学了这么长时间的java,竟没在意过这一点,唉!
//TODO
}时,我原本以为这样会出现语法错误,因为我是由int型的数值做这样判断时会报语法错误而得出的,比如if(IntA=1) {
//TODO
}这样会报语法错误,那为何if(BlnRun = true) {
//TODO
}没有语法错误呢?我后来稍微深入比较了一下,if(BlnRun = true) {
//TODO
}与if(BlnRun == true) {
//TODO
}的区别,发现,它们的执行结果不一样,为什么?
真是惭愧啊,学了这么长时间的java,竟没在意过这一点,唉!
i=3的值就是3
if(3)显然有语法错误
if(true)就没问题了
boolean f = false;
if (f = false)
{
System.out.println(123);
}
if (f = true)
{
System.out.println(123);
}在if后面的判断条件里,写 = 的话,就是先赋值
给变量 f 赋值,然后判断 f 是true 还是 false 如果用int类型会报错,就是因为赋值结束后,准备判断了,发现该变量竟然不是 boolean 型,就错了
int j=4+(i=5);
j=?
if(b) {}对于 boolean 型变量在进行条件判断时,应直接采用其变量,比如:if(a);a ? 1 : 2,而不建议采用 if(a == true);a == true ? 1 : 2,这种画蛇添足的写法!
上面说的=TRUE是赋值。。很有道理
class Triangle{
ABC(){
A=a;
B=b;
C=c;}
setABC(double a,double b,double c){
this a=a;
this b=b;
this c=c; }
void settriangle(double a,double b,double c){
if(a+c<b||a+b<c||c+b<a){
System.out.println("它不是一个三角形")
}
boolean =Triaangle
if(boo){
System.out.println(Triengle.settrigle())
}
}
}
}