最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

if-else 語句
控制條件分支。
語法

  if ( expression )
 statement1
[else
 statement2]

備注
如果 expression 的值不為零,執(zhí)行 statement1 。如果選項 else 存在,如果 expression 的值為零,執(zhí)行 statement2。 表達式必須是算術或指針類型,或者必須是定義明確的整型或指針類型轉換的類類型。有關轉換器的信息,請參見標準轉換。
在兩個形式的 if 語句和 expression 語句中計算,可以具有除結構以外的任何值,包括所有副作用。除非 statement 中的一個包含 break、 continue 或 goto,控件才能從 if 語句傳遞到項目中的下一條語句。
if...else 語句的 else 子句與在沒有相應的 else 語句的同一范圍的最接近的前面 if 語句相關。
為了使此示例可以明確有關 if...else 配對,取消對大括號的注釋。

// 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 語句
允許根據(jù)整型表達式的值在多個代碼段中進行選擇。
語法

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

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

條件 操作
轉換后的值與提升的控制表達式的值匹配。轉換后的值與提升的控制表達式的值匹配。 控制將轉移到跟在該標簽后面的語句。
沒有常量與 case 標簽中的常量匹配;default 標簽存在。 控制將轉移到 default 標簽。
沒有常量與 case 標簽中的常量匹配;default 標簽不存在。 控制將轉移到 switch 語句之后的語句。

如果找到匹配的表達式,則后續(xù) case 或 default 標簽不會妨礙控制。 break 語句用于停止執(zhí)行并將控制轉移到 switch 語句之后的語句。如果沒有 break 語句,則將執(zhí)行從匹配的 case 標簽到 switch 末尾的每個語句,包括 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 是大寫 A,則 capa 將遞增。 capa++ 之后的 break 語句會終止 switch 語句體的執(zhí)行并將控制轉移到 while 循環(huán)。如果沒有 break 語句,lettera 和 nota 也將遞增。 case 'a' 的 break 語句也能達到類似的目的。如果 c 是小寫 a,則 lettera 將遞增,并且 break 語句將終止 switch 語句體。如果 c 不是 a 或 A,則將執(zhí)行 default 語句。
switch 語句的內部塊可以包含帶有初始化的定義,前提是可以訪問到它們 - 即,所有可能的執(zhí)行路徑都不會繞過它們。使用這些聲明引入的名稱具有局部范圍。例如:

// 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 語句可以嵌套。在這種情況下,case 或 default 標簽將與封裝它們的最近的 switch 語句關聯(lián)。

相關文章

  • C++ 花括號{}初始化小結

    C++ 花括號{}初始化小結

    在C++11及以后的版本中,花括號{}語法在不同語境下有不同的用法,本文就詳細的介紹C++ 花括號{}初始化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • C語言 風靡一時的黃金礦工游戲實現(xiàn)流程詳解

    C語言 風靡一時的黃金礦工游戲實現(xiàn)流程詳解

    《黃金礦工》是一款非常經(jīng)典的游戲。在游戲中,玩家通過不斷挖礦,獲取金子,最終能夠闖入下一關。在這個過程中,會不斷有巖石、煙霧、老鼠來搗亂,甚至還會出現(xiàn)扛著炸藥包的小老鼠,玩家必須戰(zhàn)勝它們,才能進入更深的礦坑
    2021-11-11
  • C++圖文并茂分析講解內存管理

    C++圖文并茂分析講解內存管理

    本章主要介紹C語言與C++的內存管理,以C++的內存分布作為引入,介紹C++不同于C語言的內存管理方式(new delete對比 malloc free),感興趣的朋友來看看吧
    2022-09-09
  • C++ GDI實現(xiàn)圖片格式轉換

    C++ GDI實現(xiàn)圖片格式轉換

    GDI+(Graphics Device Interface Plus)是一種用于圖形繪制和圖像處理的應用程序編程接口(API),在Windows平臺上廣泛使用,本文就來介紹一下如何使用GDI實現(xiàn)圖片格式轉換吧
    2023-12-12
  • C++中Operator類型強制轉換成員函數(shù)解析

    C++中Operator類型強制轉換成員函數(shù)解析

    轉換函數(shù)定義了由<類型說明符1>到<類型說明符2>之間的映射關系。可見,轉換函數(shù)是用來將一種類型的數(shù)據(jù)轉換成為另一種類型
    2013-09-09
  • 最長公共子字符串的使用分析

    最長公共子字符串的使用分析

    本篇文章是對最長公共子字符串的使用進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++?opencv利用grabCut算法實現(xiàn)摳圖示例

    C++?opencv利用grabCut算法實現(xiàn)摳圖示例

    這篇文章主要為大家介紹了C++?opencv利用grabCut算法實現(xiàn)摳圖的代碼示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • C++ normal_distribution高斯正態(tài)分布函數(shù)的用法示例

    C++ normal_distribution高斯正態(tài)分布函數(shù)的用法示例

    高斯分布也稱為正態(tài)分布(normal distribution),常用的成熟的生成高斯分布隨機數(shù)序列的方法由Marsaglia和Bray在1964年提出,這篇文章主要給大家介紹了關于C++ normal_distribution高斯正態(tài)分布函數(shù)用法的相關資料,需要的朋友可以參考下
    2021-07-07
  • C語言利用EasyX實現(xiàn)繪制足球圖案

    C語言利用EasyX實現(xiàn)繪制足球圖案

    這篇文章主要為大家詳細介紹了C語言如何利用EasyX繪圖庫實現(xiàn)繪制一個簡單的足球圖案,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-11-11
  • C語言qsort函數(shù)使用方法詳解

    C語言qsort函數(shù)使用方法詳解

    qsort是一個庫函數(shù),基于快速排序算法實現(xiàn)的一個排序的函數(shù),下面這篇文章主要給大家介紹了關于C語言qsort()函數(shù)使用的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09

最新評論

牡丹江市| 玉树县| 无为县| 青龙| 武胜县| 泾川县| 佛坪县| 余姚市| 云南省| 丰台区| 南丹县| 永嘉县| 壤塘县| 明星| 永新县| 玛纳斯县| 泸定县| 灵石县| 湖北省| 射洪县| 乾安县| 崇州市| 聂拉木县| 河南省| 阿坝| 彭州市| 伊川县| 富锦市| 乌拉特中旗| 铁岭市| 济阳县| 读书| 六安市| 泰安市| 平利县| 旬邑县| 洛隆县| 泉州市| 安塞县| 延吉市| 牟定县|