分支語句——c++程式的控制結構1
程式 由若干條語句組成,各語句按照順序一條一條地執行,這種順序結構是簡潔的。但在現實世界中,在解決問題的過程中,不可避免地遇到需要進行選擇戊需要迴圈I作的情況。這時,程式執行的順序需要發生變化,而非從前向後逐一執行。因此程式中除了順序結構以外,通常還有選擇結構迴圈結構以及轉移機制。
if選擇結構
格式: if(條件表示式)
{
語句1;
語句2;
語句…;
}
if的條件語句可以完成選擇結構,如果條件表示式成立,則執行語句,反之則不會執行。
if—else語句 (雙分支)
格式: if(條件表示式)
語句1;
else
語句2;
如果條件表示式的值為真,則執行語句1。執行完語句1後,執行整個if—else語句後面的語句。如果條件表示式的值為假,那麼跳過語句1執行語句2,執行完後再執行後續語句。執行完後,整個if—else語句完成。
現有程式:判斷某一年是否為閏年
#include <iostream>
using namespace std;
int main()
{ int a;
cin>>a;
if((a%4==0)&&(a%100!=0)||(a%400==0))
cout<<"Y";
else cout<<"N";
}
書寫if語句時,可以根據需要適當的縮排。(不縮排會逼死多少程式設計師)
*switch語句
當分支較多時,單純的If語句可能會造成書寫程式的工程量加大。程式的複雜度變多,困難也加大。而且影響程式的外觀。但是有一種開關switch語句。
該語句中可以多次使用case符號,不同的case就會有不同的結果。
但要注意,case後面的常量表達式通常為字面常量。如常數或字元。
switch語句執行過程
(1)計算出switch後面圓括號內表示式的值.假定為M.若它不是整型,系統將自動合去其小數部分,只取其整數部分作為結果值。
(2)依次計算出每個case後常量表達式的值,假定它們為MI、M2.、… ,同樣,若它們的值不是整型,則自動轉換為整型。
(3)讓M依次同M1、M2、…進行比較,一旦遇到M與某個值相等,則就從對應標號的語句開始執行;在碰不到相等的情況下,若存在default子句,則就執行其冒號後面的語句序列,否則不執行任何操作;當執行到複合語句最後的右花括號時就結束整個swich語句的執行。
switch中執行到它時,break語句來實現。整個語句的執行,'在實際使用swich語句時,通常要求當執行完某個as後的組語向序列後,就結南,而不讓它繼續執行下一個該語句只有保留字.將結束該switch語句,系統接著向下執行其他語句。break,而沒有其他任何成分。case語句後面的語句序列,為此,可通過使用它是一條跳轉語句,在switch語句中遇到break時,便會結束該語句。
以下程式是一個簡單的成績等級查詢。各個等級有相應的評價,這裡case後面的表示式是一個字元。
include
using namespace std;
int main ()
{
char grade = 'D';
switch(grade)
{
case 'A' :
cout << "很棒!" << endl;
break;
case 'B' :
case 'C' :
cout << "做得好" << endl;
break;
case 'D' :
cout << "您通過了" << endl;
break;
case 'F' :
cout << "最好再試一下" << endl;
break;
default :
cout << "無效的成績" << endl;
}
cout << "您的成績是 " << grade << endl;
return 0;