溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++程序的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)詳解

發(fā)布時間:2021-09-13 09:06:50 來源:億速云 閱讀:142 作者:chen 欄目:開發(fā)技術(shù)

這篇文章主要介紹“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)嵌套


            1.選擇結(jié)構(gòu)

            1.1 判斷語句if

            1.單行if語句 if
            #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;
            }
            2.多行if語句 if...else
            #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;
            }
            3.多條件if語句 if...else if...else if ...else
            #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;
            }
            4.嵌套if語句

            例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 三目運算符判斷

            語法:表達式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.3 開關(guān)語句switch

            注意點:

            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é)果:

            C++程序的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)詳解

            2.循環(huán)結(jié)構(gòu)

            2.1 while

            例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;
            }

            2.2 do...while

            例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;
            }

            2.3 for

            例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;
            }

            2.4 循環(huán)控制

            1.break:跳出循環(huán)

            例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;
            }
            2.continu:跳出本次循環(huán),繼續(xù)下一次循環(huán)

            例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;
            }
            3.goto:跳轉(zhuǎn)到label,接著往下走

            例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;

            2.5 循環(huán)嵌套

            例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;
            }

            C++程序的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)詳解

            例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;
            }

            C++程序的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)詳解

            例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;
            }

            C++程序的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)詳解

            到此,關(guān)于“C++程序的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)詳解”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

            向AI問一下細節(jié)

            免責聲明:本站發(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)容。

            c++
            AI