java学习中(一)

1。while(1) 该判断在c++中,编译器会把int类型转换为布尔值,而在java中会报错。

2. java中范围大的数据向范围小的数据转换 ,需要强制转换并可能造成信息丢失,反之,会自动转换。

3.在java中条件与(&&)和逻辑与(&),以及条件或(||)和逻辑或(|)在布尔值运算上具有相同的结果。区别在于他们的运算过程是不相同的。条件与(&&)和条件或(||)采用的是所谓的“短路规则”,即在运算时先根据第一个操作数进行判断,如果从第一个草数就可以推出结果,那么就不会去计算第二个操作数。例如,a,b都是boolean型的变量,当a=true时,不管b取什么值,a||b均为true。这样b在条件或(||)运算下就不会被计算。而逻辑与(&)和逻辑或(|)则没有采用这一规则,不关第一个操作数值是什么,第二个操作数仍然会被计算。这样,当进行符合运算时,就可能出现不同的结果。

为了验证上面说的短路规则,请看下面的例子。首先声明变量month,并赋初值8。在程序的执行过程中均不修改变量month的值,从而在下面的布尔运算中,(month==8)一直保持为真。程序通过变量day的值是否发生变化来验证短路规则。
//test.java
public class test
{
public static void main(String [] args)
{
int month=8;//声明变量month,并赋8
int day=1;//声明变量day,值为1
if((month==8)||(++day<15))
System.out.println("Month="+month+"Day="+day);
if((month==8)|(++day<15))
System.out.println("Month="+month+"Day="+day);
}
} //End

执行的结果是:

Month=8 Day=1
Month=8 Day=2


}
}

在上面的程序中,关系(month==8)一直成立,所以上面的布尔运算结果均为真。在第一个条件语句“if((month==8)||(++day<15))”中,由于短路规则,所以(++day<15)不会被执行,从而这时变量day的值不会发生变化,即仍然为1。因此,输出的第一行为“Month=8 Day=1”。当执行到第二个条件语句“if((month==8)|(++day<15))”时,由于逻辑或(|)会计算第二个操作数,所以计算结果造成变量day的值发生变化,即变成2。因此,输出第二行为“Month=8 Day=2”。这也就验证了条件或(||)遵循短路规则,而逻辑或(|)不遵循短路规则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值