1樓:烏龍踏雪
if的條件是這樣判定的,如果為非零值認為為真,為0則為假。當用!a[i]時,說明a[i]為0時執行下面的語句。
其中!為非,也就是說「反」,因為我們預設的是非零即為真,所以說原句省略了一部分他相當於if(!a[i]!
=0),即(!a[i]是非零的)
2樓:樸虹運曜
「<<」
代表左移運算子.
a[i]<<=2
即:將a[i]
對應的二進位制向左移兩位.
左移運算通過可以用來做2的多次方乘法,
左移1位等於乘以2的一次方
因此在不溢位的情況下:
a[i]<<=2;
其實等價於:
a[i]乘以2的2次方
即:a[i]<<=2
等價於a[i]=a[i]*2*2=a[i]*4
3樓:
if(!a[i])就是判斷 !a[i] 的值是真還是假,在c語言中0為假,非0為真
如果a[i]的值為0,那麼!a[i]為1,if(!a[i])成立
如果a[i]的值不為0,那麼!a[i]為0,if(!a[i])不成立
4樓:匿名使用者
a[i]是乙個bool型別的
就是說 a[i]非真成立的話
在用c++程式設計時,if(a[i])是什麼意思?
5樓:匿名使用者
if(a[i])是執行if判斷的語copy句體a[i]是乙個
值。在c++中,有乙個隱式型別轉換,如果說乙個數非0,那麼轉換成真,否則轉換成為假。
所以if(a[i])就是判斷a[i]是不是0,是0則if(a[i])為假,否則進入if子語句。
擴充套件資料:c++程式設計中if語句是用於的條件判斷的控制語句,當判斷條件成功時,將執行相應語句,否則跳過。具體形式如下:
if(表示式) 語句;
[else 語句;](可選)
或if(表示式) 語句;
else if(表示式) 語句;
else if(表示式) 語句;
……else 語句;
上面的描述當表示式成立時執行語句,而else是可選的,在表示式不成立時將執行此語句,可以不使用。此外if語句支援多層巢狀,可以對多個條件進行判斷。
例子:輸入
乙個整數n(-109 <= n <= 109)輸出如果n > 0, 輸出positive;
如果n = 0, 輸出zero;
如果n < 0, 輸出negative
6樓:匿名使用者
a[i]是乙個值。
在c++中,有乙個隱式型別轉換,如果說乙個數非0,那麼轉換成真,否則轉換成為假。
所以if(a[i])就是判斷a[i]是不是0,是0則if(a[i])為假,否則進入if子語句
7樓:匿名使用者
首先要想if()是判斷()裡條件真假的,那就簡單了,說白了就是a[i]這個值真假,我不知道你a是什麼型別,只要a[i]不等於0就返回true否就是false
8樓:★迷彩帽
就是如果a[i]不空
9樓:匿名使用者
支援一樓的回答 他說的不錯
c語言中的if(1)是什麼意思啊
10樓:你不愛吃烤肉
if(表示式)表示式的值為1後面的程式執行,若為0則不執行。
比如if(1>2)其中1>2是
個邏輯判斷,1<2當然是假,所以就是false(false為0,true為1),但cpu不認false只認0和1,所以1《2的邏輯返回值就是0,所以if(0)等價於if(1>2),其他的同理。
還有一種就是if(5),c語言預設if(判別的返回值)是0就不執行,不是0就是執行!所以if(5)等同於if(1)也就是說if(表示式結果為0(邏輯判斷只返回0和1,但若是某個數值則不為0則當做是1))。
所以f(0)等價於f(1<2)等價於f((1+4)<9),f(!1)等,不執行。
if(1)相當if(5),if(1<2);
int a=0;
if(1)執行;
a=3;結果a=3;
if(0)不執行跳過;
a=4;
else a=5;執行a=5;
擴充套件資料:
c語句常用語句:
一,表示式語句
表示式語句由表示式加上分號「;」組成。
其一般形式為:表示式;執行表示式語句就是計算表示式的值。
例如: x=y+z;a=520;賦值語句;
y+z;加法運算語句,但計算結果不能保留,無實際意義;
i++; 自增1語句,i值增1。
i++; 是先運算i後再加1。
++i; 是先把i值增1後運算。
二,函式呼叫語句
由函式名、實際引數加上分號「;」組成。
其一般形式為: 函式名(實際參數列) ;
執行函式語句就是呼叫函式體並把實際引數賦予函式定義中的形式引數,然後執行被調函式體中的語句,求取函式值。
呼叫庫函式,輸出字串。
例如:printf(a,b,c); /*呼叫名為"printf"的函式*/
三,控制語句
控制語句用於控制程式的流程, 以實現程式的各種結構方式。
它們由特定的語句定義符組成。c語言有九種控制語句。 可分成以下三類:
(1). 條件判斷語句
if語句、switch語句;
(2) .迴圈執行語句
do while語句、while語句、for語句;
(3). 轉向語句
break語句、goto語句(此語句盡量少用,因為這不利結構化程式設計,濫用它會使程式流程無規律、可讀性差)、continue語句、return語句。
條件判斷
int x,y;
if(x>y)
printf("x,\n");
else
printf("y,\n");
四,復合語句
把多個語句用括號{}括起來組成的乙個語句稱復合語句。 在程式中應把復合語句看成是單條語句,而不是多條語句,例如
是一條復合語句。復合語句內的各條語句都必須以分號「;」結尾;此外,在括號「}」外不能加分號。
五,空語句
只有分號「;」組成的語句稱為空語句。空語句是什麼也不執行的語句。在程式中空語句可用來作空迴圈體。
例如 while(getchar()!='\n'); 本語句的功能是,只要從鍵盤輸入的字元不是回車則重新輸入。這裡的迴圈體為空語句。
11樓:銀孟昝迎彤
首先你要明白什麼是表示式,還有變數。
a是乙個變數。
a++,++a都是a加了1.
比如a原來是1,執行了a++或++a後,a變數的值就是2了至於a++和++a的區別主要是在表示式上的區別。
++a是先執行了a加1後,參與表示式的計算。
a++是a先參與表示式的計算,後執行自加1.
比如:int
a,b;
a=1;//如果你想把a的值1,付給b.那麼,但你又想使得a加1。你就可以這麼做
b=a++;//++在a之後,先把a的值付給b,然後再本身加1。這時候b=1,a=2了。
//如果你還不懂得話。b=a++;的意思
就是b=a;a=a+1;這兩句意思
//而b=++a
就是a=a+1;b=a;的意思
至於a++=a+a+1
好像寫錯了吧
是a+=a+a+1
優先順序等於
a=a+(a+a+1)//a+=b
是a=a+b
的簡化!=
不等於,是條件運算子,用來判斷真假的。
比如1!=2;
表示式的值就是假,也就是0;
c語言很多式子都是簡化的,這樣雖然可以節省**,卻比較讓人糊塗。
12樓:宜都書童
if()括號裡面跟的是條件句,如果條件成立,也就是if(1),則後面的程式執行。c語言預設if(判別的返回值)是0就不執行,不是0就是執行、所以if(5)等同於if(1)。
c# 中 if 語句的語法:
if(boolean_expression)
如果布林表示式為 true(1),則 if 語句內的**塊將被執行。如果布林表示式為 false(0),則 if 語句結束後的第一組**(閉括號後)將被執行。你的**解釋如下:
int a=0;
if(1)//執行
else a=5//執行a=5
擴充套件資料:
1、一般形式 if(表示式)表示式1 else 表示式2 :表示式成立(為真)則執行表示式1,否則執行表示式2.
適用範圍:真假,對錯,開關,對立面的條件
注意:如果if語句中只包括一條語句,可以省略{}但最好不要省略,如果有多條語句,一定要加{}
如果else不包含任何語句,則可以省略掉else
2、分支 if(表示式1){語句1}else if(表示式){語句2} else if(表示式3){語句3}。。。。。else(語句4)
表示式1成立立即執行語句1,否則判斷表示式2,表示式2成立則立即執行語句2,否則判斷表示式3,表示式3成立則立即執行語句3,表示式1,表示式2,表示式3都不成立,則執行語句4
分支if語句中條件是互斥的,不能有重複或互相包含的情況。如果有,必須重新理清程式思路。
if的條件是一段連續的範圍,要把所有的情況都涵蓋完
適用範圍:條件互斥,沒有相重合的條件,且條件都是一段連續的範圍的時候用
3、巢狀形式:
if (表示式) else
}elseelse
}使用範圍:適合逐層遞進,從大到小細分條件,可用巢狀。
13樓:匿名使用者
邏輯判斷
if(表示式)表示式的值為1後面的程式執行,若為0則不執行
比如if(1>2)其中1>2是個邏輯判斷,1<2當然是假,所以就是false(false為0,true為1),但cpu不認false只認0和1,
所以1《2的邏輯返回值就是0,所以if(0)等價於if(1>2),其他的同理
還有一種就是if(5),c語言預設if(判別的返回值)是0就不執行,不是0就是執行!所以if(5)等同於if(1)
也就是說if(表示式結果為0(邏輯判斷只返回0和1,但若是某個數值則不為0則當做是1))
所以f(0)等價於f(1<2)等價於f((1+4)<9),f(!1)等,不執行
if(1)相當if(5),if(1<2)
int a=0;
if(1)執行
else a=5;執行a=5
還乙個是,*************這個自己動腦,按上面的方法試試
int a=0;
if(1)
a=3;
if(0)
a=4;
else a=5;
請一步步的說一下是什麼意思啊··想了半天也沒想明白··
14樓:匿名使用者
if(1)裡的1同時被理解為真假值,代表真,也就是如果為真,就進行if後邊的操作
c語言裡面那個if(i==1)。。乙個等號和兩個等號什麼區別。。都分別代表什麼意思啊。。
15樓:子小夜
if(i==1)的兩個等號的區別是:兩者的運算子型別不一樣,乙個等號表示賦值, 兩個等號表示比較。
1、c語言中 2個等號為關係運算子,意思是:判斷兩邊的值是否相等。
== 關係運算子的表現形式為: 變數1 == 變數22、c語言中 1個等號為賦值運算子,意思是:賦值如:
x = 5,意思是將常量值5賦值給變數xif(i&1==1)這句話表示:如果是 奇數 則。。。
i&1 -- 按位與運算,取 2進製整數 i 的最低位,如果最低位是1 則得1,如果最低位是0 則得0。 奇數 i 的最低位 是1,偶數i 的最低位 是0。
c語言for迴圈語句,c語言中for語句是怎麼用的
當m 1的時候 就進入第二個迴圈 此時的m經過 後就等於2 當第二個迴圈的n累加到k的時候,就跳出第二個迴圈 返回第乙個迴圈這時m 2,進入第二個迴圈n又重0開始,當n累加到k的時候又會返回到第乙個迴圈的了 一直如此迴圈下去 直到m也累加到k的時候整個迴圈都會推出的了 a為啥要從0開始,那就只有從這...
c語言中,語句printfx,o,
x是轉換為十六進位制,o是轉換為八進位制 十進位製數16對應的十六進位製數是10 十進位製數12對應的八進位製數是14 因此輸出結果為10,14 o,x分別是輸出8進製,16進製制輸出對應的值!x 1 o 14 寫出語句 printf d,o,x 0x12,12,012 的輸出結果 d是十進位制的輸...
c語言中for語句是怎麼用的c語言中兩個for語句的是怎樣迴圈的
c語言中for語句用法 for是c語言中的乙個關鍵字,主要用來控制迴圈語句的執行。舉例 int i for i 0 i 3 i i 0是初始化部分 i 3是迴圈判斷條件部分 當滿足此條件時才進入執行for迴圈中的語句 i 是執行完迴圈體語句後的操作 上面的for語句就是控制輸出3次helloworl...