C-30天学习打卡(三)

C++30天学习打卡(三)

个人博客地址
个人笔记记录而已,需要C++资料的可以在下面留言
看的视频和课件都来自黑马程序员公开课

程序流程结构

C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构

  • 顺序结构:程序按顺序执行,不发生跳转
  • 选择结构:依据条件是否满足,有选择的执行相应功能
  • 循环结构:依据条件是否满足,循环多次执行某段代码
选择结构
  • if语句
    • **作用:**执行满足条件的语句

    • if语句的三种形式:单行格式if语句;多行格式if语句;多条件的if语句

    • 注意:在if判断语句后面,不要加分号

    • 代码示例:三只小猪称体重

      #include <iostream>
      
      using namespace std;
      
      int main() {
      	// 三只小猪称体重
      	int A = 0;
      	int B = 0;
      	int C = 0;
      	cout << "请输入小猪A的体重:" << endl;
      	cin >> A;
      	cout << "请输入小猪B的体重:" << endl;
      	cin >> B;
      	cout << "请输入小猪C的体重:" << endl;
      	cin >> C;
      	if (A >= C) {
      		if (B >= A) {
      			cout << "小猪B的体重最重" << endl;
      		}
      		else
      		{
      			cout << "小猪A的体重最重" << endl;
      		}
      	}
      	else
      	{
      		if (B >= C) {
      			cout << "小猪B的体重最重" << endl;
      		}
      		else
      		{
      			cout << "小猪C的体重最重" << endl;
      		}
      	}
      
      	system("pause");
      	return 0;
      }
      
  • 三目运算符
    • 作用:通过三目运算符实现简单的判断,和if语句比较,三目运算符优点是短小整洁,缺点是如果用嵌套,结构不清晰

    • 语法:表达式1 ? 表达式2 :表达式3

    • 解释:如果表达式1的值为真,执行表达式2,并返回表达式2的结果;如果表达式1的值为假,执行表达式3,并返回表达式3的结果。

    • 示例:

      #include <iostream>
      
      using namespace std;
      
      int main() {
      	int a = 10;
      	int b = 0;
      	int c = 0;
      
      	c = a > b ? a : b;
      	cout << "c = " << c << endl;
      
      	// C++中的三目运算符返回的是变量,可以继续赋值
      	(a > b ? a : b) = 100;
      	cout << "a = " << a << endl;
      	cout << "b = " << b << endl;
      	cout << "c = " << c << endl;
      
      	system("pause");
      	return 0;
      }
      
  • switch语句
    • 作用:执行多条件分支语句

    • 语法:

      switch(表达式)
      
      {
      	case 结果1:执行语句;break;
      	case 结果2:执行语句;break;
      	...
      	default:执行语句;break;
      }
      
    • 示例:

      #include <iostream>
      
      using namespace std;
      
      int main() {
      	int score = 0;
      	// 给电影评分
      	/*
      	9-10-非常好
      	7-8-还行
      	5-6-一般
      	5以下-烂片
      	*/
      	cout << "请给该电影评分:" << endl;
      	cin >> score;
      	switch (score)
      	{
      	case 10:
      	case 9:
      		cout << "这部电影非常好看" << endl;
      		break;
      	case 8:
      	case 7:
      		cout << "这部电影还行" << endl;
      		break;
      	case 6:
      	case 5:
      		cout << "这部电影一般" << endl;
      		break;
      	default:
      		cout << "这部电影是烂片,别看" << endl;
      		break;
      	}
      
      	system("pause");
      	return 0;
      }
      
    • 注意:

      1.switch语句中表达式类型只能是整型或者字符型;

      2.case里如果没有break,那么程序会一直向下执行;

      3.与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间。

循环结构
  • while循环语句
    • 作用:满足循环条件,执行循环语句。

    • 语法:while(循环条件){循环语句}

    • 示例:猜数字,注意:在执行循环语句时候,程序必须提供跳出循环的出口,否则出现死循环。

      #include <iostream>
      #include <stdlib.h>
      using namespace std;
      
      int main() {
      	// 猜数字游戏
      	
      	bool flag = 1;
      	while (flag)
      	{
      		// 随机生成数字
      		int a = rand() % 101;
      		int b = 0;
      		cout << "产生的随机数为:" << a << endl; // 测试用
      		while (true)
      		{
      			cout << "请玩家输入猜测的数字:" << endl;
      			cin >> b;
      			if (b > a) {
      				cout << "数字猜大了哦" << endl;
      			}
      			else if (b < a) {
      				cout << "猜的数字有点小了哈" << endl;
      			}
      			else {
      				cout << "恭喜玩家猜对了呢" << endl;
      				break;
      			}
      		}
      		cout << "退出游戏输入0,继续游戏输入1" << endl;
      		cin >> flag;
      	}
      	
      	cout << "退出游戏了哦" << endl;
      
      	system("pause");
      	return 0;
      }
      
  • do…while循环语句
    • 作用:满足循环条件,执行循环语句;

    • 语法:do{ 循环语句 } while(循环条件);

    • 注意:与while的区别在于do…while会先执行一次循环语句,再判断循环条件;

    • 示例:水仙花数,水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。

      #include <iostream>
      
      using namespace std;
      
      int main() {
      	// 水仙花数
      	int a = 0;
      	int b = 0;
      	int c = 0;
      	int start = 100;
      	do {
      		int a = start / 100; // 百位
      		b = (start / 10)%10; // 十位
      		c = start % 10; // 个位
      		if ((a*a*a + b*b*b + c*c*c) == start) {
      			cout << start << endl;
      		}
      
      		start++;
      	} while (start < 1000);
      	system("pause");
      	return 0;
      }
      
  • for循环语句
    • 作用: 满足循环条件,执行循环语句

    • 语法:for(起始表达式;条件表达式;末尾循环体) { 循环语句; }

    • 注意:

      1.for循环中的表达式,要用分号进行分隔

      2.while , do…while, for都是开发中常用的循环语句,for循环结构比较清晰,比较常用

    • 示例:敲桌子:从1开始数到数字100, 如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,我们打印敲桌子,其余数字直接打印输出。

      #include <iostream>
      
      using namespace std;
      
      int main() {
      	// 敲桌子
      	for (int i = 1; i <= 100; i++) {
      		if (i / 10 == 7 || i % 10 == 7 || i % 7 == 0) {
      			cout << "敲桌子\t";
      
      		}
      		else
      		{
      			cout << i <<"\t";
      		}
      	}
      
      	system("pause");
      	return 0;
      
  • 嵌套循环
    • 作用:在循环体中再嵌套一层循环,解决一些实际问题;

    • 示例:九九乘法表

      #include <iostream>
      
      using namespace std;
      
      int main() {
      	// 九九乘法表
      	for (int i = 1; i < 10; i++) {
      		for (int j = 1; j < 10; j++) {
      			if (j <= i){
      				cout << j << " * " << i << " = " << i * j << "\t";
      			}
      		}
      		cout << "\n";
      	}
      	system("pause");
      	return 0;
      
跳转语句
  • break语句
    • 作用: 用于跳出选择结构或者循环结构
    • 使用的时机:
      1. 出现在switch条件语句中,作用是终止case并跳出switch;
      2. 出现在循环语句中,作用是跳出当前的循环语句;
      3. 出现在嵌套循环中,跳出最近的内层循环语句
  • continue语句
    • 作用:在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环
    • 注意:continue并没有使整个循环终止,而break会跳出循环。
  • goto语句
    • 作用:可以无条件跳转语句

    • 语法: goto 标记;如果标记的名称存在,执行到goto语句时,会跳转到标记的位置。

    • 示例:在程序中不建议使用goto语句,以免造成程序流程混乱。

      #include <iostream>
      
      using namespace std;
      
      int main() {
      
      	cout << "1" << endl;
      
      	goto FLAG;
      
      	cout << "2" << endl;
      	cout << "3" << endl;
      	cout << "4" << endl;
      
      FLAG:
      
      	cout << "5" << endl;
      
      	system("pause");
      
      	return 0;
      }
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值