[問題] !用法問題

作者: tarobear (塔落熊)   2015-04-27 16:15:44
開發平台(Platform):C
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
新手學到陣列時遇到一段程式如下
是在說將陣列中數字按大小排列, 並設flag減少執行次數.
int flag i,j,temp;
int flag=0;
for(i=1;(i<4)&&(!flag);i++)
{
flag=1;
for(j=0;j<4);j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=0;
}
}
我想問其中for的判斷要怎麼解釋?
不太懂(!flag)是什麼意思?
作者: fireslayer (fireslayer)   2015-04-27 16:21:00
!就是邏輯NOT
作者: tarobear (塔落熊)   2015-04-27 16:27:00
我知道是not 但這個判斷是什麼意思?是指flag有變動就成立嗎?好像也不是這樣QQ 有人能幫忙解釋嗎
作者: samuelcdf (溫泉龜)   2015-04-27 16:43:00
變數的內容只要不是0就是true, 否則為false!是把上述的結果再顛倒過來我不太愛這種寫法, 可是別人會寫所以還是該了解一下
作者: tarobear (塔落熊)   2015-04-27 16:49:00
所以是 !flag 意思等同 flag==0 嗎?
作者: CaptainH (Cannon)   2015-04-27 16:54:00
作者: tarobear (塔落熊)   2015-04-27 16:57:00
了解! 感謝各位!!
作者: uranusjr (←這人是超級笨蛋)   2015-04-28 00:17:00
這作者是和 break 有什麼恩怨嗎...
作者: v7q4 ((.)(.)乳劍雙修 -|=>)   2015-04-28 14:38:00
把int拿來做boolean處理...這種寫法遲早會出事
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-04-28 16:10:00
不要boolean當int計算就好。

Links booklink

Contact Us: admin [ a t ] ucptt.com