国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > C++ > 正文

C++ switch case語句講解

2020-05-23 14:28:23
字體:
來源:轉載
供稿:網友
我們已經了解,if……else……可以用來描述一個“二岔路口”,我們只能選擇其中一條路來繼續走。然而,有時候我們會遇到一些“多岔路口”的情況,用if……else……語句來描述這種多岔路口會顯得非常麻煩,而且容易把思路攪渾。比如程序4.2.2就是一個用if……else……語句描述的四岔路口(四種操作符),整個程序占據了將近一頁。

如果我們把這些多岔路看作電路,那么用if……else……這種“普通雙向開關”來選擇某一條支路就需要設計一套很復雜的選路器。所以最簡便的選路方法當然是做一個像下圖那樣的開關。(圖4.4.1)

在C++中,也有這樣的開關,那就是switch語句。它能夠很簡捷地描述出多岔路口的情況。具體的語法格式為:
C++ switch case語句講解
switch(表達式)
{
   case 常量表達式1:
   {
      語句塊1;
      break;
   }
   ……
   case 常量表達式n:
   {
      語句塊n;
      break;
   }
   default:
   {
      語句塊n+1;
   }
}

在switch語句中,我們要記住四個關鍵詞,分別是switch、case、default和break。switch是語句的特征標志(圖中標作sw);case表示當switch后的表達式滿足某個case后的常量時,運行該case以后的語句塊。要注意,任意兩個case后的常量不能相等,否則switch將不知道選擇哪條路走。default表示當表達式沒有匹配的case時,默認(default)地運行它之后的語句塊(圖4.4.1中未標出);break表示分岔路已經到頭,退出switch語句。

下面,我們就來用switch語句來改寫程序4.2.2。箭頭表明遇到break以后的運行情況。
#include "iostream.h"
int main()
{
   float a,b;
   char oper;
   cout <<"請輸入一個表達式(eg.1+2):" <<endl;
   cin >>a >>oper >>b;
   switch (oper)
   {
      case '+':
      {
         cout <<a <<oper <<b <<'=' <<a+b <<endl;
         break;
      }
      case '-':
      {
         cout <<a <<oper <<b <<'=' <<a-b <<endl; 
        break;
      }
      case '*':
      {
         cout <<a <<oper <<b <<'=' <<a*b <<endl;
         break;
      }
      case '/':
      {
         if (b!=0) cout <<a <<oper <<b <<'=' <<a/b <<endl;
         else cout <<"出錯啦!"<<endl;
         break;
      }
      default:
         cout <<"出錯啦!"<<endl;
   }
   return 0;
}
上述程序的運行結果和程序4.2.2的運行結果一樣。我們發現使用了switch語句以后,代碼的平均縮進程度有所減少,閱讀代碼的時候更簡潔易懂。所以,使用swith語句來描述這種多分支情況是很合適的。

試試看:
1、如果去除了case對應的break,則運行出來會是什么結果?
結論:如果去除了break,則不會退出switch而運行到別的支路里去。

2、如果程序4.2.2的default沒有處在switch的結尾部分,那么運行出來會是什么結果?
結論:switch語句中最后一個分支的break可以省略,其它的break均不可以。

3、case后的常量能否是一個浮點型常量或雙精度型常量?

switch的一些使用技巧
返回去看一下程序4.1.2,我們不難發現這個程序也是一個多分支結構。可是switch語句只能判斷表達式是否等于某個值,而不能判斷它是否處于某個范圍。而要我們把處于某個范圍中的每個值都作為一句case以后的常量,顯然也太麻煩了。那么我們還能不能使用swith語句來描述這種范圍型的多分支結構呢?

通過分析,我們發現了主要起區分作用的并不是個位上的數,而是十位上的數。如果我們能把十位上的數取出來,那么最多也就只有十個分支了,不是嗎?下面我們就來看一下用switch語句改編的程序4.1.2。
#include "iostream.h"
int main()
{
   int mark;
   cout <<"請輸入成績(0~100): ";
   cin >>mark;
   switch(mark/20)
   {
      case 5:
      {
         if (mark>100)//100到119的情況都是mark/20==5,所以要用if語句再次過濾
         {
            cout <<"ERROR!" <<endl;
            break;
         }
      }
      case 4:
      {
         cout <<"Good!" <<endl;
         break;
      }
      case 3:
      {
         cout <<"Soso" <<endl;
         break;
      }
      case 2://根據前面試一試的結論,如果case沒有對應的break,會運行到下一個case中
      case 1:
      case 0:
      {
         if (mark>=0)//同樣要用if過濾負數
         {
            cout <<"Please work harder!" <<endl;
            break;
         }
      }
      default://其它情況都是出錯
      cout <<"ERROR!" <<endl;
   }
   return 0;
}
這個程序要比原來的程序4.1.2冗長一些。但是這里提到這個程序的目的是要教會大家一種使用switch的方法,即“以點蓋面”。

算法時間:數據的轉換
在程序設計中,我們經常會遇到這樣的問題:我們希望處理的數據和電腦能夠處理的數據可能有所不符。不符合的情況一般有兩種,一種是范圍不符合,另一種是類型不符合。對于范圍不符合,我們一般考慮的是使用代數式對數據進行處理。比如C++中的隨機函數能夠產生一個0~32768之間的一個整數,如果我們希望得到一個0~10之間的隨機數,那么就用它對10取余數,那么結果一定就在這個范圍內。對于類型不符合,我們只好盡量用已有的數據類型來描述這種難以表達的類型。就如同電腦中用0和1表示真和假一樣。  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
av在线二区| 国产一级性片| 国产精美视频| 国产精品xxx电影| 国产aⅴ超薄肉色丝袜交足| 国产激情在线| 亚洲天堂二区| 毛片视频免费观看| 麻豆福利在线观看| 国产毛片毛片毛片| 国产黄色高清在线| 青青草在线免费观看| 国产尤物视频| av片在线观看永久免费| 懂色一区二区三区| 国产三级av在线| 日本高清中文字幕| 国产精品视频一区二区久久| 日本成人在线播放| 精品美女在线观看视频在线观看| 久草视频国产| 永久av在线| 国产精品伦理一区二区三区| 在线中文字幕第一页| 麻豆精品不卡国产免费看| 国产黄色免费在线观看| 狠狠干天天爱| 四虎久久影院| 最近中文字幕mv免费高清视频8| 在线国产小视频| 国产女主播在线观看| 丁香婷婷激情| 丁香视频免费观看| 久久精品无码一区二区日韩av| 国产91在线视频蝌蚪| 最近中文av字幕在线中文| 亚洲字幕成人中文在线观看| 国产国产国产国产国产国产| 欧美亚洲系列| 亚洲精品影院在线| 亚洲天堂电影在线观看| 永久免费av片在线观看全网站| 国产高清免费视频| 国产黄色网页| 777电影在线观看| 精品无吗乱吗av国产爱色| 91最新在线| 精品伦理一区二区| 精品网站www| 在线看黄网址| 可以免费看污视频的网站| 欧美精品se| 高清在线观看av| 久久久久久日本一区99| 另类专区欧美| 国产偷激情在线| 99久久精品免费观看国产| 香蕉视频在线观看网站| 欧美卡一卡二| 国产香蕉视频在线观看| 国产传媒在线播放| 日本在线观看| 91caoporn在线| 国产91久久久久蜜臀青青天草二| 在线中文字幕第一页| 日韩国产成人| 国产精品午夜久久久久久| 国产精品爱久久久久久久小说 | 国产伦精品一区二区三区高清版禁| 玖玖在线视频| 18成年在线观看| 免费国产在线视频| 国产激情视频网址| 国产在线一二三| 99爱视频在线观看| 天堂在线免费视频| а√最新版在线天堂| 国产黄色免费网站| 尤物免费看在线视频| 91欧美在线视频| 午夜视频免费在线观看| 青青草视频在线观看| 91av福利| 国产极品视频| 国产卡1卡2卡三卡在线| 亚洲v片在线观看| 精品999视频| 国产精品bbw一区二区三区| 交换国产精品视频一区| www.91在线播放| 伊人免费视频| 69国产精品| 精品久久九九| 国产福利热线视频| 国产美女极品在线| 九色在线网站| 九九热视频在线观看| 免费三级毛片| 欧美日韩视频精品一区二区| 日本免费一二区| 99热99re6国产在线播放| 精品美女视频在线观看免费软件| 国产欧美日本亚洲精品一4区| 九九热免费在线视频| 黄色片av在线| 国内自拍视频在线观看| 欧美一级久久久久久久久大| 国产在线观看网站| 国内自拍视频在线看免费观看| 欧美日韩不卡中文字幕在线| 亚洲人成电影| www.蜜桃av| 黄色av电影在线播放| 国产在线激情视频| 国产鲁鲁视频在线观看特色| 国产小视频免费在线网址| 国产精品久久久久久精| 国产成人精品久久一区二区小说 | 精品伦理一区二区| 一色桃子av在线| 日本在线观看| 浪潮av一区| 国产极品一区二区三区 | 在线三级av| 老司机精品视频一区二区| 国产乱妇乱子在线播视频播放网站| 六月天色婷婷| 国产视频资源| 欧美精品日韩少妇| 国产人成高清视频观看| 在线黄色.com| 久久精品国产亚洲a∨麻豆| 2019年中文字幕| 最新国产在线精品91尤物| 亚洲最新永久观看在线| 国产无套粉嫩白浆在线2022年 | 四虎国产精品永久在线| √天堂资源地址在线官网| 在线观看免费高清完整| 中文字幕在线看精品乱码| www.狠狠操.com| 依依成人在线| 国产小视频在线观看| 日本片在线看| 在线播放黄色网址| 国产日本韩国在线播放| 免费看av大片| 青草视频在线播放| 香蕉视频在线观看网站| 精品国语对白精品自拍视| 国产欧美日韩第一页| 午夜视频在线免费| 国产尤物视频| 高清在线观看av| 国产在线超碰| 国产永久免费| 国产在线超碰| 就爱干草视频| 国产在线视精品麻豆| 麻豆精品永久免费视频| 日本黄在线观看| 国内外激情在线| 国产精品一区二三区| 久久亚洲国产成人亚| 国产男女av| 国产网站麻豆精品视频| 国产对白国语对白| 伊人中文在线| 超碰在线网址| 国产婷婷视频在线| 国产99re| 欧美性猛交xxxxbbbb| 免费看av大片| 成人超碰在线| 97视频网站| 免费看的毛片| 国产一二三区在线| av高清在线| 国内精品一区视频| 国产精品久久久久永久免费看| 国产黄色在线看| 青青草免费在线观看| 中文字幕国产欧美| 精品麻豆国产| 国产免费av在线| 99热国产在线| 国产精品一区二区三区高清在线 | 国产精品久久久久白浆| 在线观看的网站你懂的| 黄色一级片视频| 中文日本在线观看| 麻豆视频国产| 91涩漫在线观看c| 国产免费人人看| 永久免费网站在线| 国产九色porn网址| 青草青在线视频| 99re在线视频| 国产福利在线免费观看| 久草.com|