0
点赞
收藏
分享

微信扫一扫

【C++成长日记02】

我是小瘦子哟 2022-03-13 阅读 60

4.程序流程结构(黑马C++笔记)

4.1 选择结构

4.1.1 if语句
  • 单行格式if语句
  • 多行格式if语句
if(条件){}else{}
  • 多条件if语句
if(条件){}if else(){}else{}
  • 嵌套if语句(更精准的条件判断)
#include<bits/stdc++.h>
using namespace std;
int main()
{
	//分数大于600上一本,大于500考二本,大于400考三本,其余视为未考上本科
	//一本中大于700考清华,大于650考北大,大于600考人大
	int score;
	cout<<"请输入您的高考成绩:"<<endl;
	while(cin>>score)
	{
		 if(score>600) 
		 	{
		 		if(score>=700)
		 		{
		 			cout<<"恭喜考入清华"<<endl;//TODO
		 		}
		 		else if(score>=650&&score<700)
		 		{
		 			cout<<"恭喜考入北大"<<endl; 
		 		}
		 		else
		 		{
		 			cout<<"恭喜考入人大"<<endl; 
		 		}
		 	}
		 	else if(score>=500&&score<600)
		 	{
		 		cout<<"恭喜考入B站大学"<<endl; 
		 	}
		 	else
		 	{
		 		cout<<"恭喜你还活着,有机会打败上面的人."<<endl;
		 	}
	} 
} 

注意:是else if & else后面没有条件(4不4洒)

4.1.2 三目运算符

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

#include<bits/stdc++.h>
using namespace std;
int main()
{
	//三目运算符
	//将a和b作比较,并将大的变量值赋给c
	int a=10;
	int b=20;
	int c=0;
	c=(a>b?a:b);//假的所以c=b 
	cout<<"c="<<c<<endl;
	//在C++中三目运算符返回的是变量,可以继续赋值
	(a<b?a:b) =100;//真的所以a=100 
	cout<<"a="<<a<<endl;
	cout<<"b="<<b<<endl;
}

4.1.3 switch语句

作用:执行多条件分支语句
语法:

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

案例:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	cout<<"请给电影打分:";
	int score;
	while(cin>>score) 
	{
		switch (score) 
		{
			case 10:
				cout<<"classic."<<endl; 
				break;
			case 9:
				cout<<"classic."<<endl; 
				break;
			case 1:
				cout<<"garbage."<<endl;	
				break;
			default:
				cout<<"garbage."<<endl; 
				break;
			}
	}
	
}

注意:每一条都有break;
ifswitch的区别:
switch判断时的缺点只能是整型或字符型,不能判断区间
switch判断时的优点结构清晰,执行效率高

4.2 循环结构

4.2.1 while循环语句

案例1:猜数字

#include<bits/stdc++.h>
using namespace std;
#include<ctime>
int main()
{   //添加随机数种子了,作用利用当前系统时间生成随机数,防止每次都一样 
	srand((unsigned int)time(NULL)); 
	int num = rand()%100+1;//%100生成0-99的随机数(+1之后生成0-100的随机数)
	//cout<<num<<endl;
	int val;
	while(1)
	{
		cin>>val;
			if(val>num)
			{
			 cout<<"大了."<<endl;//TODO
			}
			else if(val<num)
			{
			 cout<<"小了."<<endl; 
			}
			else
			{
			 cout<<"yep."<<endl; 
			 break;
			}
	}
}

4…2.2 do-while

语法:do{循环语句}while{循环条件};
与while的区别:do-while会先执行一次循环语句,再判断循环条件
案例2:水仙花数(三位数情况)
获取个位:%10
获取十位:/10 & %10
获取百位:/100

#include<bits/stdc++.h>
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;	//TODO
	  }
  	
  	num++;
  }while(num<1000);
} 

4.2.3 for循环语句

语法:for(起始表达式0(只执行一次);条件表达式1;末尾循环体3){循环语句2}
for(;false;)//不进行循环
执行顺序:0123123123…
案例3:敲桌子

#include<bits/stdc++.h>
using namespace std;
int main()
{
	//敲桌子
	//1.先输出1-100
	//2.找到特殊的数字,改为敲桌子
	// 7的倍数(7,14,21,28)%7=0
	//十位有7(70,71,72)/10=7
	//个位有7(7,17,27)%10=7
	for(int i=1;i<=100;i++)
	{
		if(i%7==0||i/10==7||i%10==7)
		{
			cout<<"敲桌子"<<endl;//TODO
		}
		else
		{
			cout<<i<<endl;//TODO	
		}
	
	}
	
	
}
4.2.4 嵌套循环

案例4:星图

#include<bits/stdc++.h>
using namespace std;
int main()
{
	//星图
	
	for(int i=0;i<=10;i++)//外层循环控制列 
	{
		for(int j=0;j<=10;j++)//内层循环控制行 
			{
				cout<<"* ";//TODO
			} 
			cout<<endl;//TODO
	}
	
}

案例5:乘法口诀表

#include<bits/stdc++.h>
using namespace std;
int main()
{
	//乘法口诀表
	for(int i=1;i<=9;i++)
	{
		for(int j=1;j<=i;j++)//寻找j与i之间的关系 
		{
			cout<<j<<"*"<<i<<"="<<j*i<<" ";
		}
		cout<<"\n";
	} 
} 

4.3 跳转语句

4.3.1 break语句

作用:跳出选择结构与循环结构
break使用时机:

  • switch条件语句中,终止case并跳出switch
  • 循环语句中,跳出循环
  • 嵌套循环中,跳出最近的内层循环语句
4.3.2 continue语句

作用:再循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环
(不会终止循环)

4.3.3 goto语句(不推荐

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

举报

相关推荐

0 条评论