c++学习笔记4程序流程结构

本文详细介绍了程序设计中的基本结构——顺序、选择和循环结构,包括if语句、三目运算符、switch语句以及while、do...while和for循环的用法。同时,通过实例展示了如何在C++中实现这些结构,强调了if和switch的区别以及break和continue在循环中的作用。此外,还探讨了嵌套循环的应用,如打印九九乘法表。
摘要由CSDN通过智能技术生成

4程序流程结构

最基本三种结构:
1)顺序结构:程序按顺序执行,不发生跳转;
2)选择结构:依据条件是否满足,有选择的执行相应功能;
3)循环结构:依据条件是否满足,循环多次执行;

4.1选择结构

4.1.1 if语句

作用:执行满足条件的语句
三种形式:
单行if语句
语法:if(条件语句)(条件满足时执行)

多行if语句
语法:if(条件)(条件满足时执行)else(条件不满足时执行)

多条件if语句
语法:if(条件1)(条件1 满足时执行)else if(条件2)(条件2满足时执行)…else if(条件n)(条件n满足时执行)else(都不满足时执行)


	int a = 1;
	cout << "请输入一个分数:" << endl;
	cin >> a;
	if (a >= 90)
	{
		cout << "优秀" << endl;
	}
	else if (a >= 70)
	{
		cout << "良好" << endl;
	}
	else if (a >= 60)
	{
		cout << "及格" << endl;
	}
	else
	{
		cout << "不及格" << endl;
	}

案例:三只小猪称体重,判断谁最重?

#include <iostream>
using namespace std;

int main()
{	
	int a = 1;
	int b = 1; 
	int c = 1;
	cout << "请输入a的体重:" << endl;
	cin >> a;
	cout << "请输入b的体重:" << endl;
	cin >> b;
	cout << "请输入c的体重:" << endl;
	cin >> c;
	if (a > b)
	{
		if (a > c)
		{
			cout << "a最重" << endl;
		}
		else
		{
			cout << "c最重" << endl;
		}
	}
	else
	{
		if (b > c)
		{
			cout << "b最重" << endl;
		}
		else
		{
			cout << "c最重" << endl;
		}
	}
	system("pause");
		return 0;
}

4.1.2三目运算符

作用:通过三目运算符实现简单的判断
语法:表达式1?表达式2:表达式3
如果表达式1的值为真,执行表达式2,并返回表达式2 的结果;
如果表达式1的值为假,执行表达式3,并返回表达式3 的结果;
eg:比较a和b的大小,并把最大值赋给c

#include <iostream>
using namespace std;

int main()
{	
	int a = 13;
	int b = 17; 
	int c = 1;
	a > b ? c = a : c = b;//或者 c= (a>b?a:b);

	cout << "c=" << c << endl;

	system("pause");
		return 0;
}

三目运算符返回的是变量,可以继续赋值:(a>b?a:b)=100; 输出b=100,a=13

4.1.3switch语句

作用:执行多条件分支
语法:
switch(表达式)
{
case结果1:执行语句,break;
case结果2:执行语句,break;
case结果3:执行语句,break;

default :执行语句,break;
}
eg:给电影评分

int core = 0;
	cout << "请输入一个分数" << core << endl;
	cin >> core;
	cout << "您输入的分数为" << core << endl;

	switch (core)
	{
	case   5:cout << "这是一个烂片" << endl; break;
	case   8:cout << "这是一个hao片" << endl; break;
	case   10:cout << "这是一个h片" << endl; break;
    default :cout << "这是一个w片" << endl; break;
	}

if和switch的区别:

1)switch判断时只能是整数型或者字符型,而不能是一个区间;
2)switch结构清晰,执行效率高;

4.2循环结构

4.2.1while循环语句

先判断,在执行
作用:满足循环条件,执行循环语句
语法:while(循环条件){循环语句}
eg:打印0~9

int a = 0;
while (a <10)
	{
		cout << a << endl;
		a++;
	}

案例:生成一个随机数,玩家进行猜测,如果猜错了,则提示过大或过小,如果猜对了则提示恭喜猜对了并退出游戏;
注:rand()生成一个随机数

#include <iostream>
using namespace std;
int main()
{	

	srand((unsigned int)time(NULL));//添加随机种子,作用是:利用当前系统时间生成随机数,防止每次随机数都一样

	//生成一个随机数
	int num = rand() % 100 + 1;//在0+1~99+1之间生成一个随机数,单独用rand()时,每次游戏生成的随机数都一样
	int num2 = 0;//玩家输入一个数
	while (num != num2)
	{
		cin >> num2;
		cout << "你输入的是" << num2 << endl;
		if (num > num2)
		{
			cout << "你输入的过小" << endl;
}
		else
		{
			cout << "你输入的过大" << endl;
		}
	}
	cout << "恭喜你,猜对啦" << endl;
	system("pause");
		return 0;
}

4.2.2 do…while循环

先执行,再判断

EG:在屏幕上输出0~9

int a = 0;
	do
	{
		cout << a << endl;
		a++;
	} 
	while (a < 10);

案例:一个三位数,若它的每个位上的数字的三次幂之和加起来仍等于它本身,则称这个数为水仙花数,eg:1^3+555+333=153.用do…while语句,求出所有三位水仙花数

int num = 100;
	
	do
	{
		int a = 0;
		int b = 0;
		int c = 0;
		a = num % 10;//获得个位数;
		b = num / 10 % 10;//获得十位数;
		c = num /100;//获得百位数;
		if ( a*a*a +b*b*b+c*c*c==num)
		{
			cout << num << endl;
		}
		num++;
	} while (num < 1000);

4.2.3for循环

语法:for(起始表达式;条件表达式;末尾循环体){循环语句;}
eg:输出0·9

for (int i = 0; i < 10; i++)
	{
		cout << i << endl;
	}

案例:敲桌子:从1开始数到100,如果数字个位数含有7,或者数字十位数含有7,或者数字是7的倍数,则打印敲桌子,其余数字直接打印

for (int i = 1; i <= 100; i++)
	{
		int a = 0;
		int b = 0;
		a = i % 10;//得到个位数
		b = i / 10;//得到十位数
		if (a == 7 ||b == 7 || i % 7 == 0)//个位数为7或者十位数为7或者为7的倍数
		{
			cout << "敲桌子" << endl;//满足其中一个条件
		}
		else
		{
			cout << i << endl;
		}
	}

4.2.4嵌套循环
打印10X10的*图

for (int i = 1; i <= 10; i++)
	{
		for (int j = 1; j <= 10; j++)
		{
			cout << "# ";
		}
		cout << endl;
	}

效果:
在这里插入图片描述
案例:打印九九乘法表;

	{
		for (int j = 1; j <=i; j++)
		{
			cout  <<j<<"*"<<i<<"="<<j*i<<"  ";
		}
		cout << endl;
	}

结果:
在这里插入图片描述

4.3跳转语句

4.3.1break语句

作用:用于跳出选择结构或者循环结构
使用时机:
1)出现在switch条件语句中,作用是终止case并跳出switch;
2)出现在循环语句中,作用是跳出当前的循环语句;
3)出现在嵌套环中,跳出最近的内层循环语句;

4.3.2continue语句

作用:在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环;
在0·100中输出奇数;

for (int i = 1; i <= 100; i++)
	{
		if (i % 2 == 0)
		{
			continue;
		}
		cout << i << endl;
	}

4.3.3goto语句

作用:可以无条件跳转语句
语法:goto 标记;
解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值