程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 詳解C++編程中的前提斷定語句if-else與switch的用法

詳解C++編程中的前提斷定語句if-else與switch的用法

編輯:關於C++

詳解C++編程中的前提斷定語句if-else與switch的用法。本站提示廣大學習愛好者:(詳解C++編程中的前提斷定語句if-else與switch的用法)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解C++編程中的前提斷定語句if-else與switch的用法正文


if-else 語句
掌握前提分支。
語法

  if ( expression )
 statement1
[else
 statement2]

備注
假如 expression 的值不為零,履行 statement1 。假如選項 else 存在,假如 expression 的值為零,履行 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 語句
許可依據整型表達式的值在多個代碼段中停止選擇。
語法

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

備注
expression 必需屬於整型或存在到整型的明白轉換的類類型。將依照整型晉升中所述的方法履行整型晉升。
switch 語句體由一系列 case 標簽和一個可選 default 標簽構成。 case 語句中的兩個常量表達式的盤算成果不克不及為統一個值。 default 標簽只能湧現一次。標志語句不是語法請求,但假如它們不存在,switch 語句是有意義的。默許語句無需顯示在末尾;它可以顯示在 switch 語句體的任何地位。case 或 default 標簽只能顯示在 switch 語句內。
每一個 case 標簽中的 constant-expression 將轉換為 expression 類型,並將與 expression 比擬能否等效。掌握到其 case constant-expression 與 expression 的值婚配的語句的傳遞。下表中顯示了生成的行動。
switch 語句行動
前提 操作 轉換後的值與晉升的掌握表達式的值婚配。轉換後的值與晉升的掌握表達式的值婚配。 掌握將轉移到跟在該標簽前面的語句。 沒有常量與 case 標簽中的常量婚配;default 標簽存在。 掌握將轉移到 default 標簽。 沒有常量與 case 標簽中的常量婚配;default 標簽不存在。 掌握將轉移到 switch 語句以後的語句。
假如找到婚配的表達式,則後續 case 或 default 標簽不會妨害掌握。 break 語句用於停滯履行並將掌握轉移到 switch 語句以後的語句。假如沒有 break 語句,則將履行從婚配的 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 語句體的履行並將掌握轉移到 while 輪回。假如沒有 break 語句,lettera 和 nota 也將遞增。 case 'a' 的 break 語句也能到達相似的目標。假如 c 是小寫 a,則 lettera 將遞增,而且 break 語句將終止 switch 語句體。假如 c 不是 a 或 A,則將履行 default 語句。
switch 語句的外部塊可以包括帶有初始化的界說,條件是可以拜訪到它們 - 即,一切能夠的履行途徑都不會繞過它們。應用這些聲明引入的稱號具有部分規模。例如:

// 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 語句聯系關系。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved