②:可以是判断语句if(a==1){进入此处}else{不进此处}
③:可以是赋值语句if(a=2){进入此处}else{不进此处},那么还有别的类型吗,换句话说,if()括号的内容类型有几种,给我详解一下,一定采纳
事实上括号内(a=2)是不对的,报错信息:Type mismatch: cannot convert from int to boolean。
追答if (a=2)在C中是合法的,但编译时可能有警告。
一般可以看见有人喜欢写 if (a=b) .....,实际意义为 if ( (a=b) != 0 ) .....
C#中也许不合法。
Java中也不合法,我记得是在C中可以的,昨晚在Java中就不行了,原来这还是有很多不同之处啊
boolean flag = true;
if (flag = false) {
System.out.println("flag=false");
} else {
System.out.println("flag=true");
}
你说这个应该是打印哪一个?其实flag就是一个赋值,那么括号内(flag=false)的结果是true还是false呢?是不是说赋值这件事是true还是false?
是==不是=来比较
追问我这是赋值运算符,就是这么写的,你说的是等于号,要是那样就简单了。你能给我分析一下吗
追答不能把赋值表达式用在if条件
追问你可以试试,JAVA代码
本回答被网友采纳boolean flag = true;
if (flag = false) {
System.out.println("flag=false");
} else {
System.out.println("flag=true");
}
你说这个应该是打印哪一个?其实flag就是一个赋值,那么括号内(flag=false)的结果是true还是false呢?是不是说赋值这件事是true还是false?
我个人认为输出第一个,赋值相当于恒为真的判断
追问我也觉得赋值是真,但是事实并非如此,此处输出第二个。
另外:
boolean flag = false;
if (flag = true) {
System.out.println("flag=true");
} else {
System.out.println("flag=false");
}
而这个则输出第一个了,那就是if()括号内的值要是为true,输出第一个;为false,输出第二个。