1. if語句:
一般語法如下:
if (test-condition)
{
statement(s);
}
如果test-condition結果為真,執行statement(s),否則跳過statement(s)。
2. if...else語句
一般語法如下:
if (test-condition)
{
statement(s)1;
}
else
{
statement(s)2;
}
如果test-condition結果為真,則執行statement(s)1,否則執行statement(s)2。
3. if...else if...else語句
一般語法如下:
if (test-condition1)
{
statement(s)1;
}
else if (test-condition2)
{
statement(s)2;
}
...
else if (test-conditionN)
{
statement(s)N;
}
else
{
statement(s);
}
實際上,這種結構表示的含義是:一個if else語句被嵌套在另外一個if else中。但相比于層層嵌套,該結構語句的格式更清晰,可讀性更高。
4. switch語句
一般語法如下:
switch (integer-expression)
{
case label1:
{
statement(s);
}
break;
case label2:
{
statement(s);
}
break;
...
case labelN:
{
statement(s);
}
break;
default:
{
statement(s);
}
break;
}
switch語句中的integer-expression結果必須為整型,通過判斷integer-expression的值來跳到對應的case分支,執行該分支下的statement(s)。
switch語句也可改寫為if...else if...else語句,兩者相比:
Ⅰ. switch語句隻能測試整型條件,而if...else if...else語句可以處理其他類型測試。
Ⅱ. 如果兩種語句都可用且選項超過兩個,switch語句的效率更高。
5. ?:運算符
條件運算符(?:)可以用來代替if else語句,它是C 中唯一需要3個操作數的運算符。該運算符的通用格式如下:
expression1 ? expression2 : expression3
如果expression1結果為真,則整個表達式的值為expression2的值,否則表達式的結果為expression3的值。
二:邏輯表達式需要測試多個條件時,可以用邏輯運算符來将多個表達式組成邏輯表達式。這些運算符有:邏輯或(||)、邏輯與(&&)和邏輯非(!)。
多個條件進行邏輯或運算時,隻要一個條件結果為真,則整個邏輯表達式的結果為真。
多個條件進行邏輯與運算時,隻要一個條件結果為假,則整個邏輯表達式的結果為假。
邏輯非運算時,對原表達式結果取反。
邏輯與和邏輯或運算符優先級低于關系運算符和算術運算符,且邏輯與運算符優先級高于邏輯或;而邏輯非的運算符優先級高于關系運算符和算術運算符。
三:補充break語句:用于循環語句和switch語句中,使程序結束循環或結束switch語句。
continue語句:用于循環語句中,讓程序跳過循環體中餘下的代碼,并開始新一輪循環。
字符函數庫:從C語言繼承的用來判斷字符的函數軟件包。常用的字符函數有:
isalnum():如果參數是字母或數字,該函數返回true。
isalpha():如果參數是字母,該函數返回true。
isdigit():如果參數是數字(0~9),該函數返回true。
islower():如果參數是小寫字母,該函數返回true。
isupper():如果參數是大寫字母,該函數返回true。
ispunct():如果參數是标點符号,該函數返回true。
tolower():如果參數是大寫字母,該函數返回其小寫,否則返回該參數。
toupper():如果參數是小寫字母,該函數返回其大寫,否則返回該參數。
四:實戰演示題目:編寫一個程序,讀取鍵盤輸入,直到遇到@字符為止,并回顯輸入(數字除外),同時改變輸入字符的大小寫。
代碼如下:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
std::vector<char> chVec;
char ch;
cin.get(ch);
while (ch != '@')
{
if (isdigit(ch))
{
cin.get(ch);
continue;
}
if (islower(ch))
{
ch = toupper(ch);
}
else if (isupper(ch))
{
ch = tolower(ch);
}
chVec.push_back(ch);
cin.get(ch);
}
for (int size = chVec.size() - 1; size >= 0; --size)
{
cout << chVec.at(size);
}
cout << endl;
system("pause");
return 0;
}
測試結果如下圖所示:
圖1 測試結果
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!