⑴ c語言的分支語句有哪幾種C語言分支結構的基本形式是什麼,區別是什麼
C語言中的分支結構有三種:
1、單分支結構
單分支結構的基本形式是:
if( <條件表達式> )
{
(語句塊)
}
2、雙分支結構
雙分支結構的基本形式是:
if( <條件表達式> )
{
語句塊1;
}
else
{
語句塊2;
}
3、多分支結構
多分支結構又分為:「分支結構的嵌套」與「switch語句」
(1)分支結構的嵌套的基本形式是:
if( <條件表達式> )
{
if( <條件表達式> )
{
語句塊1
}
else
{
語句塊2
}
}
else
{
if( <條件表達式> )
{
語句塊3
}
else
{
語句塊4
}
}
(2)switch語句
(2)switch語句的基本形式是:
switch(表達式)
{
case 常量1:語句1;break;
case 常量2:語句2;break;
case 常量3:語句3;break;
……
case 常量n:語句n;break;
default : 語句n+1;
}
這三種分支結構的區別在於:
1、單分支結構在滿足條件時執行,不滿足條件不執行;
2、在雙分支結構中,如果條件表達式成立,則執行語句塊1,否則,執行語句塊2,所以雙分支結構至少執行一次;
3、多分支結構的分支結構的嵌套中,分支結構的嵌套包含了單分支結構與雙分支結構的特性,可以用單分支結構嵌套雙分支結構,也可用雙分支結構嵌套單分支結構,通俗的來講就是分支結構中放入一個分支結構,當條件成立則執行分支結構中嵌套的分支結構;
4、switch語句可以理解成其他的分支結構的總和,switch集成了上述所有分支結構的特性,在有多種情況的時候才使用switch,當switch(條件)滿足case 後面的常量,則執行對應的語句,若滿足的條件未能匹配到對應的常量,則執行default後的語句,有default的switch語句是至少執行一次的,當然default也可省略不寫,這樣switch語句也可以一次都不執行。
⑵ C語言循環結構
不是C語言只有三種結構,是所有的語言都只存在這三種結構!
順序結構:代碼按照編碼順序執行。
選擇結構,雙稱分支結構,細分有單分支,雙分支與多分支。單分支只有if結構,還用來做判斷。雙分支一般指的是if...else結構。多分支一般指的是switch結構,當然多重的if...else也可以實現,同時還是類惟邏輯尺等等編程思想。
循環結構:就是特定條件下要重復執行的語句。一般有步長型for,當型while,直到型do...while(部分語言中是until),以及枚舉型foreach(部分語言中是for...in幾種。還有幾中特殊的直撞調用或間接調用兩種形式實現的循環,在部分語言中將其單發為遞歸結構,但大多數時間由於是函數或方法的調用實現的,不歸語言結構范疇,所以雖有遞歸結構,多數語言中還只認為存在三種基礎結構,而遞歸屬於調用層面的結構。所以在死循環時,除了檢查我們的循環結構之外,還要特別注意是不是存在的遞歸調用上的缺少遞歸條件。
⑶ C語言中的的if語句共有多少種格式
3種形式
1、 第一種形式為基本形式:if
if(表達式) 語句
其語義是:如果表達式的值為真,則執行其後的語句,否則不執行該語句。
2、第二種形式為: if-else
if(表達式) 語句1;else 語句2;
其語義是:如果表達式的值為真,則執行語句1,否則執行語句2 。
3、第三種形式為if-else-if形式
前二種形式的if語句一般都用於兩個分支的情況。當有多個分支選擇時,可採用if-else-if語句,
一般形式為: if(表達式1) 語句1; else if(表達式2) 語句2; else if(表達式3) 語句3;…
else if(表達式m) 語句m; else 語句n;
其語義是:依次判斷表達式的值,當出現某個值為真時,則執行其對應的語句。然後跳到整個if
句之外繼續執行程序。 如果所有的表達式均為假,則執行語句n。然後繼續執行後續程序。
(3)c語言if的雙分支擴展閱讀
在使用if語句中還應注意以下問題:
在三種形式的if語句中,在if關鍵字之後均為表達式。
該表達式通常是邏輯表達式或關系表達式,但也可以是其它表達式,如賦值表達式等,甚至也可以是一個變數。例如: if(a=5) 語句; if(b) 語句;
都是允許的。只要表達式的值為非0,即為「真」。如在: if(a=5)…;中表達式的值永遠為非0,所以其後的語句總是要執行的,當然這種情況在程序中不一定會出現,但在語法上是合法的。
參考資料
網路-if語句
⑷ 條件為真時,執行語句a用什麼分支
用if分支。if雙分支語句,執行過程中條件表達式為真,執行語句A,為假則執行else後面的語句B。在C語言中單分支選擇結構是用IF語句來實現的,在這里表達式P就表示這個條件,如果表達式p的值為真就執行A,否則就不執行語句b。
⑸ C語言 雙分支if語句求值
情況1:
你的程序寫的有問題!
那個判斷條件不應該是a=b,這是個賦值語句,為真!
應該是判斷語句a==b!
那麼程序走到這個判斷條件上時,a=2,b=3,所以a!=b,它走的是另外的一個路徑,即else語句!
c先自加一次,即為5!
b=b+(++c)=3+5=8!
a沒變化!沒有改變a值變化的語句!
所以答案為2 8 5!
情況2:
你寫的程序沒問題
那麼那個if語句判斷的結果為真,因為它的判斷語句是個賦值語句!所以它接下來走的路徑是c+=b++,即c=c+b++,所以c=4+3=7!b在做完加法後自加一次,變成4,即輸出的值為4!
答案為3 4 7!
⑹ c語言if語句雙重條件
if((KEY_1 != RESET) && (KEY_2 == RESET)) { // 滿足租條件
}
C語言中if語句用法:
1、一般格式為:if (表達式) 語句 1 [ else 語句2 ]。
值得注意的是,else子句是可選的。當括弧中的表達式的值為真值時,程序執行語句1,否則將執行語句2。
2、多個if嵌套使用。
(1)最近原則。當出現多個if語句嵌套在一起的時候,else子句與最臨近的if語句匹配,就像題主給出的這道題目,else子句與第二個if語句匹配。
(2)強制匹配情況。如果將本題目稍作調整,在第二個if語句前面加上一個花括弧「{」,同時在第一個printf語句後加一個花括弧「}」,那麼else語句就與第一個if匹配。
{
(6)c語言if的雙分支擴展閱讀:
if語句使用的注意事項:
1、if(條件表達式)其後沒有分號。
一般來說,有"{}"有沒有";",有";"就沒有"{}"
2、if語句所控制的語句如果是一條語句,我們可以不寫大括弧;
如果控制的是兩條以上的語句,必須加大括弧。
if語句的控制體沒有加大括弧是其後跟的一條語句。
建議:永遠加上大括弧。避免不必要的錯誤。
⑺ 求c語言中,用if...else雙分支語句和if...elsi if..else語句設計「3個數排序」程序謝謝!
#include<stdio.h>
void main() /*3個數按由大到小排序*/
{
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
if(a>c)
if(b>c)
printf("%d,%d,%d",a,b,c);
else
printf("%d,%d,%d",a,c,b);
else
printf("%d,%d,%d",c,a,b);
else
if(b>c)
if(a>c)
printf("%d,%d,%d",b,a,c);
else
printf("%d,%d,%d",b,c,a);
else
printf("%d,%d,%d",c,b,a);
}
⑻ C語言if多分支結構
你犯了一個非常常見的問題.
if(op='+')
if(op='-')
你的兩個if裡面的判斷相等的符號用錯了,應該用相等符號==,而不是賦值符號=
建議你以後這么寫代碼
if('+'==op)
if('-'==op)
你這樣寫的話,就算是你把==錯誤的寫成了=號,那麼編譯器會提示你.這樣就能很快發現錯誤了,你可以試一試.
⑼ 雙分支if語句涉及兩個關鍵字是什麼
if 和else 。
⑽ c語言中if的多分支條件語句中,分支最多有幾個呀
if是條件選擇句,可嵌套使用,個數無限制,注意條件句成立只運行if後一條語句,另外分支句是switch,其case可以有無數條,但注意每條語句後又沒加break語句的必要性。