int&boolean——Java和C的一點小差別


Java和C的差別非常多。只是預計這一點非常多人都不知道。

今天面試時碰到這么道C語言題


求執行結果

	int x = -1;
	while(!x!=0){
		cout<<x<<endl;
		x=x*x;
	}
	cout<<"haha"<<i<<endl;

此題關鍵在於理解運算符優先順序

while(!x!=0)

這句話的運行順序:

!x   

!=0


所以

!-1=false

false!=0

所以循環不會運行


這道題我做的時候還是對自己的答案有疑惑的,回來打開Eclipse想用Java測試一下

結果


竟然報錯了!。。!難道答案是編譯錯誤???

又打開VS編了一遍C++

執行、、

噗。。。還好沒錯。。。


結論:

C語言中,非0就是true,0就是false。然而這個規則不適用於Java

Java的int不能自己主動轉為boolean!

想轉?用if語句羅



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com