switch語句首先對括號裏面的表達式求職,該表達式可以是一個初始化的變量聲明,表達式的值轉換成整數類型,然後與case標籤比較
case標籤必須是整型常量表達式,任何兩個case標籤的值不能相同,否則出錯
break語句的作用是中斷當前的控制流
#include <iostream>
using namespace std;
int main()
{
unsigned int scnt=0, hcnt = 0, acnt = 0, ocnt = 0;
char ch;
while(cin.get(ch))//cin.get(ch)可以捕獲空格字符,cin >> ch 不能捕獲空格和換行等字符
{
switch (ch)
{
case ' ':
++scnt;
break;
case '\n':
++hcnt;
break;
case 'a':
++acnt;
break;
default:
++ocnt;
break;
}
}
cout << "space number: " << scnt << '\n'
<< "newline number: " << hcnt << '\n'
<< "alpha a number: " << acnt << '\n'
<< "other number: " << ocnt << '\n';
return 0;
}
//統計一下含有兩個字符的字符序列的數量 ff fl fi
#include <iostream>
using namespace std;
int main()
{
unsigned int ffCnt=0, flCnt = 0, fiCnt = 0, oCnt = 0;
char currCh = '\0', preCh = '\0';
while(cin >> currCh)//cin.get(ch)可以捕獲空格字符,cin >> ch 不能捕獲空格和換行等字符
{
if(preCh == 'f')
{
switch (currCh)
{
case 'f':
++ffCnt;
break;
case 'l':
++flCnt;
break;
case 'i':
++fiCnt;
break;
default:
++oCnt;
break;
}
}
preCh = currCh;//想法很重要
}
cout << "ff number: " << ffCnt << '\n'
<< "fl number: " << flCnt << '\n'
<< "fi number: " << fiCnt << '\n'
<< "oCnt number: " << oCnt << '\n';
return 0;
}