欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解C++編程中的條件判斷語(yǔ)句if-else與switch的用法

 更新時(shí)間:2016年01月16日 14:35:32   投稿:goldensun  
這篇文章主要介紹了C++編程中的條件判斷語(yǔ)句if-else與switch的用法,是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下

if-else 語(yǔ)句
控制條件分支。
語(yǔ)法

  if ( expression )
 statement1
[else
 statement2]

備注
如果 expression 的值不為零,執(zhí)行 statement1 。如果選項(xiàng) else 存在,如果 expression 的值為零,執(zhí)行 statement2。 表達(dá)式必須是算術(shù)或指針類(lèi)型,或者必須是定義明確的整型或指針類(lèi)型轉(zhuǎn)換的類(lèi)類(lèi)型。有關(guān)轉(zhuǎn)換器的信息,請(qǐng)參見(jiàn)標(biāo)準(zhǔn)轉(zhuǎn)換。
在兩個(gè)形式的 if 語(yǔ)句和 expression 語(yǔ)句中計(jì)算,可以具有除結(jié)構(gòu)以外的任何值,包括所有副作用。除非 statement 中的一個(gè)包含 break、 continue 或 goto,控件才能從 if 語(yǔ)句傳遞到項(xiàng)目中的下一條語(yǔ)句。
if...else 語(yǔ)句的 else 子句與在沒(méi)有相應(yīng)的 else 語(yǔ)句的同一范圍的最接近的前面 if 語(yǔ)句相關(guān)。
為了使此示例可以明確有關(guān) if...else 配對(duì),取消對(duì)大括號(hào)的注釋。

// if_else_statement.cpp
#include <stdio.h>

int main() 
{
 int x = 0;
 if (x == 0)
 {
  printf_s("x is 0!\n");
 }
 else
 {
  printf_s("x is not 0!\n"); // this statement will not be executed
 }

 x = 1;
 if (x == 0)
 {
  printf_s("x is 0!\n"); // this statement will not be executed
 }
 else
 {
  printf_s("x is not 0!\n");
 }

 return 0;
}

輸出:

x 是 0!
x 不是 0!

switch 語(yǔ)句
允許根據(jù)整型表達(dá)式的值在多個(gè)代碼段中進(jìn)行選擇。
語(yǔ)法

 switch ( expression )
case constant-expression : statement
[default : statement]

備注
expression 必須屬于整型或存在到整型的明確轉(zhuǎn)換的類(lèi)類(lèi)型。將按照整型提升中所述的方式執(zhí)行整型提升。
switch 語(yǔ)句體由一系列 case 標(biāo)簽和一個(gè)可選 default 標(biāo)簽組成。 case 語(yǔ)句中的兩個(gè)常量表達(dá)式的計(jì)算結(jié)果不能為同一個(gè)值。 default 標(biāo)簽只能出現(xiàn)一次。標(biāo)記語(yǔ)句不是語(yǔ)法要求,但如果它們不存在,switch 語(yǔ)句是無(wú)意義的。默認(rèn)語(yǔ)句無(wú)需顯示在末尾;它可以顯示在 switch 語(yǔ)句體的任何位置。case 或 default 標(biāo)簽只能顯示在 switch 語(yǔ)句內(nèi)。
每個(gè) case 標(biāo)簽中的 constant-expression 將轉(zhuǎn)換為 expression 類(lèi)型,并將與 expression 比較是否等效??刂频狡?case constant-expression 與 expression 的值匹配的語(yǔ)句的傳遞。下表中顯示了生成的行為。
switch 語(yǔ)句行為

條件 操作
轉(zhuǎn)換后的值與提升的控制表達(dá)式的值匹配。轉(zhuǎn)換后的值與提升的控制表達(dá)式的值匹配。 控制將轉(zhuǎn)移到跟在該標(biāo)簽后面的語(yǔ)句。
沒(méi)有常量與 case 標(biāo)簽中的常量匹配;default 標(biāo)簽存在。 控制將轉(zhuǎn)移到 default 標(biāo)簽。
沒(méi)有常量與 case 標(biāo)簽中的常量匹配;default 標(biāo)簽不存在。 控制將轉(zhuǎn)移到 switch 語(yǔ)句之后的語(yǔ)句。

如果找到匹配的表達(dá)式,則后續(xù) case 或 default 標(biāo)簽不會(huì)妨礙控制。 break 語(yǔ)句用于停止執(zhí)行并將控制轉(zhuǎn)移到 switch 語(yǔ)句之后的語(yǔ)句。如果沒(méi)有 break 語(yǔ)句,則將執(zhí)行從匹配的 case 標(biāo)簽到 switch 末尾的每個(gè)語(yǔ)句,包括 default。例如:

// switch_statement1.cpp
#include <stdio.h>

int main() {
 char *buffer = "Any character stream";
 int capa, lettera, nota;
 char c;
 capa = lettera = nota = 0;

 while ( c = *buffer++ ) // Walks buffer until NULL
 {
  switch ( c )
  {
   case 'A':
   capa++;
   break;
   case 'a':
   lettera++;
   break;
   default:
   nota++;
  }
 }
 printf_s( "\nUppercase a: %d\nLowercase a: %d\nTotal: %d\n",
  capa, lettera, (capa + lettera + nota) );
}

在上面的示例中,如果 c 是大寫(xiě) A,則 capa 將遞增。 capa++ 之后的 break 語(yǔ)句會(huì)終止 switch 語(yǔ)句體的執(zhí)行并將控制轉(zhuǎn)移到 while 循環(huán)。如果沒(méi)有 break 語(yǔ)句,lettera 和 nota 也將遞增。 case 'a' 的 break 語(yǔ)句也能達(dá)到類(lèi)似的目的。如果 c 是小寫(xiě) a,則 lettera 將遞增,并且 break 語(yǔ)句將終止 switch 語(yǔ)句體。如果 c 不是 a 或 A,則將執(zhí)行 default 語(yǔ)句。
switch 語(yǔ)句的內(nèi)部塊可以包含帶有初始化的定義,前提是可以訪(fǎng)問(wèn)到它們 - 即,所有可能的執(zhí)行路徑都不會(huì)繞過(guò)它們。使用這些聲明引入的名稱(chēng)具有局部范圍。例如:

// switch_statement2.cpp
// C2360 expected
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
 switch( tolower( *argv[1] ) )
 {
  // Error. Unreachable declaration.
  char szChEntered[] = "Character entered was: ";

 case 'a' :
  {
  // Declaration of szChEntered OK. Local scope.
  char szChEntered[] = "Character entered was: ";
  cout << szChEntered << "a\n";
  }
  break;

 case 'b' :
  // Value of szChEntered undefined.
  cout << szChEntered << "b\n";
  break;

 default:
  // Value of szChEntered undefined.
  cout << szChEntered << "neither a nor b\n";
  break;
 }
}

switch 語(yǔ)句可以嵌套。在這種情況下,case 或 default 標(biāo)簽將與封裝它們的最近的 switch 語(yǔ)句關(guān)聯(lián)。

相關(guān)文章

  • 關(guān)于C++靜態(tài)成員函數(shù)訪(fǎng)問(wèn)非靜態(tài)成員變量的問(wèn)題

    關(guān)于C++靜態(tài)成員函數(shù)訪(fǎng)問(wèn)非靜態(tài)成員變量的問(wèn)題

    靜態(tài)成員函數(shù)不能訪(fǎng)問(wèn)非靜態(tài)成員,這是因?yàn)殪o態(tài)函數(shù)屬于類(lèi)而不是屬于整個(gè)對(duì)象,靜態(tài)函數(shù)中的 member可能都沒(méi)有分配內(nèi)存。靜態(tài)成員函數(shù)沒(méi)有隱含的this自變量。所以,它就無(wú)法訪(fǎng)問(wèn)自己類(lèi)的非靜態(tài)成員
    2013-10-10
  • C++常用的#include頭文件總結(jié)

    C++常用的#include頭文件總結(jié)

    這篇文章主要介紹了C++常用的#include頭文件,對(duì)初學(xué)者理解C++程序設(shè)計(jì)大有好處的相關(guān)資料
    2014-07-07
  • C語(yǔ)言排序算法之選擇排序(直接選擇排序,堆排序)

    C語(yǔ)言排序算法之選擇排序(直接選擇排序,堆排序)

    這篇文章主要介紹了C語(yǔ)言排序算法之選擇排序(直接選擇排序,堆排序),堆排序使用堆來(lái)選數(shù),效率高很多,更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-07-07
  • C語(yǔ)言學(xué)習(xí)進(jìn)階篇之萬(wàn)字詳解指針與qsort函數(shù)

    C語(yǔ)言學(xué)習(xí)進(jìn)階篇之萬(wàn)字詳解指針與qsort函數(shù)

    之前的指針詳解中,提到過(guò)qsort函數(shù),這個(gè)函數(shù)是用來(lái)排序的,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言指針與qsort函數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 關(guān)于C/C++中static關(guān)鍵字的作用總結(jié)

    關(guān)于C/C++中static關(guān)鍵字的作用總結(jié)

    以下是對(duì)C/C++中static關(guān)鍵字的作用進(jìn)行了總結(jié)介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-09-09
  • C/C++的全緩沖、行緩沖和無(wú)緩沖

    C/C++的全緩沖、行緩沖和無(wú)緩沖

    這篇文章主要介紹了C/C++的全緩沖、行緩沖和無(wú)緩沖的相關(guān)知識(shí),幫助大家更好的理解和學(xué)習(xí)c/c++,感興趣的朋友可以了解下
    2020-08-08
  • c++中vector的使用和模擬實(shí)現(xiàn)

    c++中vector的使用和模擬實(shí)現(xiàn)

    這篇文章主要介紹了c++中vector的使用和模擬實(shí)現(xiàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • C語(yǔ)言實(shí)現(xiàn)經(jīng)典掃雷小游戲的示例代碼

    C語(yǔ)言實(shí)現(xiàn)經(jīng)典掃雷小游戲的示例代碼

    掃雷游戲是在一個(gè)指定的二維空間里,隨機(jī)布置雷,把不是雷的位置都找出來(lái),在你點(diǎn)一個(gè)位置的時(shí)候它會(huì)顯示它周?chē)坷椎膫€(gè)數(shù),根據(jù)這個(gè)線(xiàn)索去找 ,會(huì)更容易贏。本文將用C語(yǔ)言實(shí)現(xiàn)這一經(jīng)典游戲,感興趣的可以嘗試一下
    2022-11-11
  • 用純C語(yǔ)言實(shí)現(xiàn)貪吃蛇游戲

    用純C語(yǔ)言實(shí)現(xiàn)貪吃蛇游戲

    這篇文章主要為大家詳細(xì)介紹了用純C語(yǔ)言實(shí)現(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • c++使用Easyx圖形庫(kù)實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    c++使用Easyx圖形庫(kù)實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    本文詳細(xì)講解了c++使用Easyx圖形庫(kù)實(shí)現(xiàn)飛機(jī)大戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12

最新評(píng)論