日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++(5)--运算符、表达式、条件结构(if, switch)

發布時間:2023/12/13 c/c++ 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++(5)--运算符、表达式、条件结构(if, switch) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++運算符、表達式 條件結構

  • 1.表達式與運算符
    • 1.1賦值運算符
    • 1.2算術運算符
    • 1.3關系運算符
    • 1.4邏輯運算符
    • 1.5位運算符
    • 1.6 sizeof()
    • 1.7 三目運算符
    • 1.8 運算符的優先級
  • 2.條件結構
    • 2.1--if
    • 2.2 --switch結構
    • 2.3 switch 和 多重if 結構的對比

條件結構)
《老九學堂C++課程》《C++ primer》學習筆記。《老九學堂C++課程》詳情請到B站搜索《老九零基礎學編程C++入門》

-------------簡單的事情重復做,重復的事情用心做,用心的事情堅持做(老九君)---------------

1.表達式與運算符

(上一章只講了算術運算符號)
運算符:賦值運算符,算術運算符,關系運算符,邏輯運算符
表達式:符號和操作數的組合

1.1賦值運算符

從右向左運算,將右邊的值賦給左邊的對象
復合賦值運算符: +=, *=, ,\=,

1.2算術運算符

一元運算符:++, --;二元運算符:+,-,*,/,%

1.3關系運算符

比較符號兩邊對象的關系,(結果是0/1):>,<,>=,<=,==,!=

#include <iostream> int main(){cout << "15 > 88 嗎?" << (15 > 88) << endl;cout << "16 > 99 嗎?" << (16 < 99) << endl;cout << boolalpha; // 設置輸出True, Falsecout << "15 > 88 嗎?" << (15 > 88) << endl;cout << "16 > 99 嗎?" << (16 < 99) << endl;return 0; }

輸出

15 > 88 嗎?0 16 > 99 嗎?1 15 > 88 嗎?false 16 > 99 嗎?true

1.4邏輯運算符

(與、或、非)&&、||、 !
(python 中使用 and, or, not 來表示邏輯運算符 與,或,非)

1.5位運算符

運算符作用示例
&按位與兩位同時為1時,結果為1
|按位或兩位有一個為1時,結果為1
~按位非操作數為1,結果為0;操作數為0,結果為1
^按位異或兩個操作數相同,結果為0,不同結果為1
<<左移右側補零
>>右移左側補符號位
#include <iostream> int main(){cout << (4 & 5) << endl;cout << (~ 2) << endl; cout << (2 << 3) << endl; // 2->10,(1向左移動3位)->10000 =16cout << (16 >> 3) << endl; // 16->10000,(尾部的元素舍棄掉3個)->10=2cout << (3 << 3)<< endl; // 3->11 (1向左移動3位)-->11000=24return 0; }

輸出

4 -3 16 2 24

提示1: 正數按位取反后為負數,負數在內存中是以補碼的形式存儲的。2->00000010 取反11111101.第一個位符號位,第一位為為0正數,第一位為1的為負數。負數在計算機中以補碼的方式存儲,11111101如何轉換為十進制呢?將二進制取反+1乘以負一。

提示2:區分cout 運算符(<<運算符重載),左移,右移操作符號兩邊都是數字,用在2 的倍數。用來處理2的倍數十分高效

1.6 sizeof()

Sizeof 認為是一個運算符,測量數據類型占內存空間的大小,單位為字節

sizeof(type_name)

demo1

#include <iostream> using namespace std; int main(){cout << sizeof(int) << endl;cout << sizeof(10) << endl;cout << sizeof(0.1) << endl;cout << sizeof("abc") << endl; // 字符串類型會自動在末尾加\0return 0;}

輸出

4 4 8 4

demo2: sizeof(num++)

int main(){int num = 5;cout << sizeof(num++) << endl; //sizeof 只是一個運算符,不湊成任何運算,mac的編譯器過不去cout << num << endl;return 0; }

應該輸出

4 5

1.7 三目運算符

(條件)?條件滿足表達式的結果:條件不滿足表達式的結果

int num= 5>6 ? 10 :12;

1.8 運算符的優先級

1.單目運算符~, ++,–,sizeof()
2.!
3.算術運算符
4.關系運算符
5.&&, ||
6.賦值運算符
(有限級別由上到下依次遞減)

2.條件結構

2.1–if

單個if
代碼格式(python 的條件/else后要接冒號,C++條件在括號中,代碼塊用大括號界定)整個if 語句作為一條語句

if(條件為真){//代碼塊1 } else{//代碼塊2 }

demo1–硬盤盤符一半采用A-Z的大小字母表示,使用程序判斷用戶輸入的字符是否是合法的硬盤盤符
(早期的計算機是AB軟盤,所以硬盤盤符號一般從C開始)

int main18(){//使用程序判斷用戶輸入的字符是否是 合法的硬盤盤符char pan = '\0'; //默認值設置為空字符,ASCII 碼為0 的字符cout << "請輸入一個字符,我來判斷是否合法:";cin >> pan;// "A"~"Z"之間if ('A' <= pan && pan <= 'Z'){cout << "是合法的字符" << endl;}else{cout << "不是合法字符" << endl;}return 0; } 請輸入一個字符,我來判斷是否合法:A 是合法的字符

demo2-購物車打折

int main(){// 購物車總價大于5W打7折,否則打9折double price_louis = 35000.0;double price_hemes = 11044.5;double price_chanel = 1535.0;double total_price = 0.0;double discout = 0.0;total_price = price_louis + price_hemes + price_chanel;if (total_price > 50000 || price_louis > 1000 || price_chanel > 1000 || price_hemes > 1000){discout = 0.7;}else{discout = 1.0;}cout << "最終付款: " << total_price * discout << endl;return 0; } 最終付款: 33305.7

多重if結構
常用來做區間判斷(python 中else if 是連在一起寫的,寫作elif)

if(條件1){//代碼塊1} else if(條件2){//代碼塊2 } else{//代碼塊3 }

2.2 --switch結構

開關語句,
1.switch 后的表達式只能是整型或者字符型,
2.case 后常量表達式的值不能相同;
3.可以不添加break,但是需要特別注意執行的順序(進到一個分支里頭,沒有遇到break語句會一直執行到最后);
4.case 和defult字句的先后順序可以自行變動>
用途:菜單選擇,判斷某個月份有幾天

switch(表達式){ case 常量1:語句1break; case 常量2:語句2break; ... default:語句; }

demo1

int main(){int choice = 2;switch(choice){case 1:cout << 1 << endl;case 2:cout << 2 << endl;case 3:cout << 3 << endl;break;case 4:cout << 4 << endl;}return 0; } 2 3

demo 2: default 放在開頭,如果所有的情況不滿足的化會執行default,直至至遇到的第一break,或者最后;如果有一個case滿足會執行該case,見demo3.

int main(){int choice = 7;switch(choice){default:cout << 998 << endl;case 1:cout << 1 << endl;case 2:cout << 2 << endl;break;case 3:cout << 3 << endl;break;case 4:cout << 4 << endl;}return 0; } 998 1 2

demo3–demo2的變形,如果有case 滿足,是不會執行default 的了

int main(){int choice = 3;switch(choice){default:cout << 998 << endl;case 1:cout << 1 << endl;case 2:cout << 2 << endl;break;case 3:cout << 3 << endl;break;case 4:cout << 4 << endl;}return 0; } 3

2.3 switch 和 多重if 結構的對比

相同點:都是用來處理多分支條件結構
不同點:
switch: 等值條件判斷,條件個數有限(殺雞刀,大于20個分支,就不要用了)
多重if:判斷某個連續區間時的情況(殺牛刀)
demo: 判斷一個有多少天, case 中的語句可以省略

int main(){//判斷某月有多少天int month = 2;switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:cout << "31天" << endl;break;case 4:case 6:case 9:case 11:cout << "30天" << endl;break;case 2:cout << "28 或者 29 天" << endl; break;}return 0; } 28 或者 29

總結

以上是生活随笔為你收集整理的C++(5)--运算符、表达式、条件结构(if, switch)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。