看这段代码
定义类和方法省略 就是最平常的定义方法
{
{
boolean b;
b=false;
system.out.println( "b is "+b);
b=ture;
system.out.println( "b is "+b);
以上很简单 没什么
if(b) system.out.println( "this is executed. ");
b=false;
if(b) system.out.println( "this is not executed. ");
system.out.println( "10> 9 is "+(10> 9));
}
}
输出结果是
b is false
b is ture
this is executed
10> 9 is ture
为什么其中没有this is not executed?
那句b=false定义了有什么用呢?作者: 张_涛 时间: 2012-6-17 20:29
1. boolean类型变量的默认值是false
2. if(boolean expression) {若布尔表达式为真,则执行代码块中的语句}
3. if(b==true)与if(b)是等价的,因为b==true这个语句的结果就是一个布尔类型,当时前者有必要么?因此你不会看到别人if(b==true)这样写的。作者: 孙浩迪 时间: 2012-6-17 20:42
boolean b;
b=false;
system.out.println( "b is "+b);
b=ture;
system.out.println( "b is "+b);
以上很简单 没什么
if(b) system.out.println( "this is executed. ");
b=false;
if(b) system.out.println( "this is not executed. "); //这里应该这样写if(!b) system.out.println(""); 你已经把b变成flase了 if(b)这里是真才能进if()判断,否则将不进入这个if(); 如这样定义 if(!b) 就是非真即假的意思, 就是假可以进去,就会执行打印了。
system.out.println( "10> 9 is "+(10> 9));
}
}
输出结果是
b is false
b is ture
this is executed
10> 9 is ture
为什么其中没有this is not executed?
你真假判断没有分清。。。
作者: 王海江 时间: 2012-6-17 20:46
1、没有this is not executed的原因是if(b) system.out.println( "this is not executed. "); 语句中的b是false值,所以不执行输出语句。
2、b=false;语句的含义是赋值啊,改变变量b的值。 作者: sbeeqnui1987 时间: 2012-6-17 20:50
java中默认的布尔变量的值是false,所以你在
system.out.println( "this is not executed. ");
之前定义了b=false;
if(b) system.out.println( "this is not executed. ");
system.out.println( "10> 9 is "+(10> 9));
这两句相当于
if(b){
system.out.println( "this is not executed. ");
}
else{
system.out.println( "10> 9 is "+(10> 9));
}
此时b为false所以不执行system.out.println( "this is not executed. ");
而执行system.out.println( "10> 9 is "+(10> 9));
if(b)表示的是if(b == true),
如果要判断b是否为false应该用if(!b),
你在第一次输出后设置b =false,可是仍然判断b为true时打印,当然不会打出来了 作者: 王广丛 时间: 2012-6-17 20:50
if(条件){}此代码表示:只有在条件为真即true的情况下才执行if中的代码,也就是说如果你的条件是假即false的时候,是不会执行的,所以你可以这样:
b = false;
if(!b){
system.out.println( "this is executed. ");
}
或者这样:
if(b == false){
system.out.println( "this is executed. ");
}
但是还是推荐你用第一中,因为第一种闲的水平比较高,第二种看着不舒服,感觉很啥老冒作者: 邓杰 时间: 2012-6-17 20:53
class Bool
{
public static void main(String[] args)
{
boolean b; //默认情况下也为false;
b=false; //手动定义一下也没有问题;
System.out.println( "b is "+b);
b=true;
System.out.println( "b is "+b);
//以上很简单 没什么
if(b) //b为true所以执行了下面的 this is executed;
System.out.println( "this is executed. ");
b=false;
if(b) //b为false所以下面的代码不执行;因为没有加{}进行区分 ;
System.out.println( "this is not executed. ");
System.out.println( "10> 9 is "+(10> 9)); //所以仅对上面一行代码有效;此句代码仍然会执行;
*/作者: 黑马黄宏强 时间: 2012-6-17 20:54
因为你的代码运行到if(b) system.out.println( "this is not executed. ");
布尔表达式的值为 false 所以 if后面的语句是不会执行的,所以结果中不会出现“this is not executed?
”
布尔b赋值的作用就是当就是让if语句就跟据b的值确定是否执行后面的代码,这不正是我们所需要的结果吗?作者: 龙秋地 时间: 2012-6-17 20:55
"(1)为什么其中没有this is not executed?
(2)那句b=false定义了有什么用呢?"
先回答第一个问题,因为你在这句之前定义了b=false;
那就证明你把false赋给了b,
if(b)
system.out.println( "this is not executed. ");
因为b是错的,所以不执行if中的语句,也就是不打印this is not executed.这句话.
还有第二个问题,上面已经说了,
楼主可能是没明白"="和"=="的作用吧.
"="是赋值,不返回值.
"=="是判断返回的是true或者false.
作者: 胡大强 时间: 2012-6-17 22:58
b=false;
if(!b) system.out.println( "this is not executed. ");