您好,登錄后才能下訂單哦!
這篇文章主要介紹“C++程序的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)詳解”,在日常操作中,相信很多人在C++程序的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)詳解問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++程序的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)詳解”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1.選擇結(jié)構(gòu)
1.1 判斷語句if
1.單行if語句 if
2.多行if語句 if...else
3.多條件if語句 if...else if...else if ...else
4.嵌套if語句
1.2 三目運算符判斷
1.3 開關(guān)語句switch
2.循環(huán)結(jié)構(gòu)
2.1 while
2.2 do...while
2.3 for
2.4 循環(huán)控制
1.break:跳出循環(huán)
2.continu:跳出本次循環(huán),繼續(xù)下一次循環(huán)
3.goto:跳轉(zhuǎn)到label,接著往下走
2.5 循環(huán)嵌套
#include<iostream> using namespace std; int main() { //選擇語句 if語句 //用戶輸入分數(shù),如果分數(shù)大于600,視為考上一本,在屏幕上輸出 //1、用戶輸入分數(shù) int score = 0; cout << "請輸入一個分數(shù):"<<endl; cin >> score; //2、打印用戶輸入的分數(shù) cout << "您輸入的分數(shù)為:" << score << endl; //3、判斷是否大于600,如果大于,那么輸出 if (score >600) { cout << "恭喜您考上了一本大學"; } return 0; }
#include<iostream> using namespace std; int main() { //1、用戶輸入分數(shù) int score = 0; cout << "請輸入一個分數(shù):" << endl; cin >> score; //2、打印用戶輸入的分數(shù) cout << "您輸入的分數(shù)為:" << score << endl; //3、判斷是否大于600,如果大于,那么輸出 if (score > 600) { cout << "恭喜 您考上了一本大學!"; } else { cout << "未考上一本"; } return 0; }
#include<iostream> using namespace std; int main() { //1、用戶輸入分數(shù) int score = 0; cout << "請輸入一個分數(shù):" << endl; cin >> score; //2、打印用戶輸入的分數(shù) cout << "您輸入的分數(shù)為:" << score << endl; //3、分數(shù)大于600,視為考上一本大學 //大于500,視為考上二本大學,屏幕輸出 //大于400,視為考上三本大學,屏幕輸出 //小于等于400,視為未考上本科 if (score > 600) { cout << "恭喜 您考上了一本大學!"; } else if (score > 500) { cout << "恭喜 您考上了二本大學!"; } else if (score > 400) { cout << "恭喜 您考上了二本大學!"; } else { cout << "未考上本科"; } return 0; }
例1:三個數(shù)找最大
#include<iostream> using namespace std; int main() { int a, b, c; cin >> a >> b >> c; cout << "A=" << a << endl; cout << "B=" << b << endl; cout << "C=" << c << endl; if (a>b)// a比b大 { if (a>c)//a最大 { cout << "A最大" << endl; } else { cout << "C最大" << endl; } } else// b比a大 { if (b > c)//b最大 { cout << "B最大" << endl; } else { cout << "C最大" << endl; } } return 0; }
例2:判斷是否是閏年
閏年的定義:
能被4整除,但不能被100整除;
能被400整除;
法一:使用關(guān)系運算符判斷
#include<iostream> using namespace std; //命名空間 int main() { //主函數(shù) int year; cin >> year; if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)//&&優(yōu)先級更高 { cout << "閏年" << endl; } else { cout << "不是閏年" << endl; } return 0; }
琺二:嵌套if
#include<iostream> using namespace std; //命名空間 int main() { //主函數(shù) int year; cin >> year; if (year % 4 == 0) { if (year%100==0) { if (year % 400 == 0) { cout << "閏年" << endl; } else { cout << "不是閏年" << endl; } } else { cout << "閏年" << endl; } } else { cout << "不是閏年" << endl; } return 0; }
語法:表達式1 ? 表達式2 : 表達式3
【解釋】若表達式1的值為真,則執(zhí)行表達式2,并返回表達式2的結(jié)果;
若表達式1的值為假,則執(zhí)行表達式3,并返回表達式3的結(jié)果
例3:兩個數(shù)找最大
#include<iostream> using namespace std; int main() { //三目運算符 //創(chuàng)建3個變量 a b c // 將a和b做比較,將變量大的值賦值給變量c int a = 10; int b = 0; int c; c=(a > b ? a : b); cout << "C=" << c << endl;//10 //C++中三目運算符返回的是變量,可以繼續(xù)賦值 (a > b ? a : b)=100; cout << "A=" << a << endl; cout << "B=" << b << endl; return 0; }
例4:判斷一個數(shù)是否是3和5的整倍數(shù)
#include<iostream> using namespace std; //命名空間 int main() { //主函數(shù) int num; cout << "Please input a number:" << endl; cin >> num; //法1: (num % 3== 0&&num%5==0) ? cout << "yes" << endl : cout << "no" << endl; //法2: (num % 3 == 0)? ((num%5==0) ? cout << "yes" << endl : cout << "no" << endl): cout << "no" << endl; return 0; }
注意點:
1.switch語句中表達式類型只能是整型或字符型;
2.case里如果沒有break,那么程序會一直向下執(zhí)行。
例5:給電影評分
#include<iostream> using namespace std; int main() { //switch語句 //給電影進行打分 //10~9 經(jīng)典 //8~7 非常好 //6~5 一般 //5以下 爛片 //1、提示用戶給電影評分 cout << "請給電影評分" << endl; //2、用戶開始進行打分 int score; cin >> score; cout << "Score=" << score << endl; //3、根據(jù)用戶輸入的分數(shù)來提示用戶最后的結(jié)果 switch (score) { case 10: cout << "您認為是經(jīng)典電影" << endl; break;//退出當前分支 case 9: cout << "您認為是經(jīng)典電影" << endl; break; case 8: cout << "您認為是電影非常好" << endl; break; case 7: cout << "您認為是電影非常好" << endl; break; case 6: cout << "您認為是電影一般" << endl; break; case 5: cout << "您認為是電影一般" << endl; break; default: cout << "您認為是爛片" << endl; break; } //if和switch區(qū)別 //switch 缺點,判斷時候只能是整型或者字符型,不可以是一個區(qū)間 //switch 有點,結(jié)構(gòu)清晰,執(zhí)行效率高 return 0; }
例6:星期幾
switch語句內(nèi)遇break才停止執(zhí)行
#include<iostream> using namespace std; //命名空間 int main() { //主函數(shù) int n; cin >> n; switch (n)//首先跳轉(zhuǎn)到與輸入一樣的case,接著往下走,遇break停止或知道語句走完才停止 { case 1: cout << "Monday" << endl; case 2: cout << "Tuesday" << endl; case 3: cout << "Wednesday" << endl; case 4: cout << "Thursday" << endl; case 5: cout << "Friday" << endl; case 6: cout << "Saturday" << endl; case 7: cout << "Sunday" << endl; default: cout << "input error" << endl; } return 0; }
輸出結(jié)果:
例1:用while循環(huán)計算1~10累加
#include<iostream> using namespace std; //命名空間 int main() { //主函數(shù) int i = 1, sum = 0; while (i<=10) { sum += i; i++; } cout << sum << endl; return 0; }
例2:案例-猜數(shù)字
#include<iostream> using namespace std; #include<ctime> int main() { //添加隨機數(shù)種子 作用利用當前系統(tǒng)時間生成隨機數(shù),防止每次隨機數(shù)都一樣 srand((unsigned int)time(NULL)); //1、系統(tǒng)生成隨機數(shù) int num = rand() % 100 + 1; //生成0~100的隨機數(shù) cout << num << endl; //2、玩家進行猜測 cout << "請玩家輸入猜測的數(shù)據(jù):" << endl; int val; //玩家輸入的數(shù)據(jù) while (1) { cin >> val; //3、判斷玩家的猜測 if (val > num) { cout << "猜測過大!" << endl; } else if(val < num) { cout << "猜測過?。?quot; << endl; } else { cout << "猜對啦!" << endl; break; //利用該關(guān)鍵字,退出循環(huán) } } //猜對 退出游戲 //猜錯 提示猜的結(jié)果,過大或者過小 重新返回第2步 return 0; }
例3:用do...while循環(huán)計算1~10累加
#include<iostream> using namespace std; //命名空間 int main() { //主函數(shù) int i = 1, sum = 0; do { sum += i; i++; } while (i <= 10); cout << sum << endl;//55 return 0; }
while與do...while的區(qū)別:
do...while無論while中條件是否為真,先執(zhí)行{}內(nèi)語句;
while中條件若為假,則不執(zhí)行。
例4:案例-水仙花數(shù)
#include<iostream> using namespace std; int main() { int num = 100; do { int a = num % 10;// 個位 int b = num / 10 % 10; //十位 int c = num / 100; //百位 if (num == a*a*a+b*b*b+c*c*c) { cout << num << endl; } num++; } while (num<1000); return 0; }
例5:用for循環(huán)計算1~10累加
#include<iostream> using namespace std; //命名空間 int main() { //主函數(shù) int sum = 0; for (int i = 1; i <= 10; i++) { sum += i; } cout << sum << endl; return 0; }
例6:敲桌子
#include<iostream> using namespace std; int main() { //1、輸出1~100的數(shù)字 //2、找7的倍數(shù),個位有7,十位有7 for (int i = 1; i <=100; i++) { if (i%7==0||i%10==7||i/10%10==7) { cout << "敲桌子!" << endl; } else { cout << i << endl; } } return 0; }
例7:遇到負數(shù),則停止累加
#include <iostream> using namespace std; int main() { int i, n, sum; sum = 0; cout << "input 10 number" << endl; for (i = 1; i <= 10; i++) { cout << i << ":"; cin >> n; if (n < 0) //判斷輸入是否為負數(shù),是負數(shù)就停止累加 break; sum += n; //對輸入的數(shù)進行累加 } cout << "The Result :" << sum << endl; return 0; }
例8:遇負,則不進行累加,接著加下一個正數(shù)
#include <iostream> using namespace std; int main() { int i, n, sum; sum = 0; cout << "input 10 number" << endl; for (i = 1; i <= 10; i++) { cout << i << ":"; cin >> n; if (n < 0) //判斷輸入是否為負數(shù) continue; sum += n; //對輸入的數(shù)進行累加 } cout << "The Result :" << sum << endl; return 0; }
例9:跳轉(zhuǎn)
#include <iostream> using namespace std; int main() { int ivar = 0; //定義一個整型變量,初始化為0 int num = 0; //定義一個整型變量,初始化為0 label: //定義一個標簽 ivar++; //ivar自加1 num += ivar; //累加求和 if (ivar < 10) //判斷ivar是否小于100 { goto label; //轉(zhuǎn)向標簽 } cout << ivar << num << endl; return 0; }
注意點:goto語句不能越過復合語句之外的變量定義的語句,例如,下面是非法的
goto label; int i 10; label: cout << "goto" << endl;
正確的:
goto label; { int i 10; } label: cout << "goto" << endl;
例10:打印三角形
#include<iostream> using namespace std; //命名空間 int main() { //主函數(shù) int i, j, k; for (i = 1; i <= 5; i++) //控制行數(shù) { for (j = 1; j <= 5 - i; j++) //控制空格數(shù) cout << " "; for (k = 1; k <= 2 * i - 1; k++) //控制打印*號的數(shù)量 cout << "*"; cout << endl; } return 0; }
例11:打印星圖
#include<iostream> using namespace std; int main() { //利用嵌套循環(huán)實現(xiàn)星圖 //打印一行星圖 //外層循環(huán) for (int i = 0; i < 10; i++) { //內(nèi)層循環(huán) for (int j = 0; j < 10; j++) { cout << "* "; } cout << endl; } return 0; }
例12:輸出乘法口訣表
#include<iostream> using namespace std; int main() { for (int i = 1; i < 10; i++) { for (int j = 1; j <= i; j++) { cout << j << "*" << i << "=" << i * j << "\t"; } cout << endl; } return 0; }
到此,關(guān)于“C++程序的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)詳解”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。