1.if分支结构
if (条件){
语句块........; }
if (条件){
语句块........; }
(若条件是真的就执行语句块)
此方法不太建议
2.if-else分支结构
if(条件)
{
语句块.......;
}
else{
语句块.......;
}
非此即彼
#include <stdio.h>
int main()
{
int year;
printf("input year:");
scanf("%d",&year);
if((year%4==0&&year%100!=0)||(year%400==0))
{
printf("%d是闰年\n",year);
}
else
{
printf("是平年");
}
return 0;
}
3.if--else if --else多分支结构
(连续区间用多分支结构)
分支语句都可进行嵌套
if(条件1)
{语句块1;}
else if(条件2)
{语句块2;}
else if(条件3)
{语句块3;}
else
{语句块n;}
#include <stdio.h>
int main()
{
if(scores>=90){
printf("优秀")
}
else if(scores>=80){
printf("良好")};i
else if(scores>=70){
printf("差")};
else if(scores>=60){
printf("及格")};
else {
printf("没及格");}
return 0;
}
更加推荐的书写方法
1.不用使用else,直接进行另一条件
if(condition)
{
return x;
}
return y;
2.将常量放在符号名前
if(5==a)
{
return x;
}
return y;
4.switch选择结构
如果条件中都是等值判断,建议使用Switch
switch(表达式)
{
case 常量表达式1+:
语句块1
break;
case 常量表达式2+:
语句块2
break;
————————————————————————————————————————
case常量表达式n+:
语句块n
break;
}
break含义成功匹配,完成打印后停止运行(位置可进行互换前提是每个语句后都要带break;)
#include <stdio.h>
int main()
{
int day;
printf("请输入天数\n");
scanf("%d",&day);
switch(day){
default:
printf("菜就多练");
case 1:
case 2:
case 3:
case 4:
case 5:
printf("奖励写作业");
break;
case 6:
printf("奖励休息");
break;
case 7:
printf("奖励上课");
break;
}
return 0;
}
5.分支结构的应用
随机数原理图 :
引入头文件
#include <stdlib.h>
#include <time.h>
——————————————————————————————
int main中:
srand(time(NULL));
建议time 内写入NULL
int rand()%常数;
通常自己想要0~9,%后就加上9也可在其后面加一使其打印出1~10
(随机数成正态分布,产生随机数是会有一个种子,电脑开机后就不会变化了,而时间是变化的,我们将时间当做种子,进行播种使其产生真正的随机数)
猜拳游戏:使用 if ~~~else if结构进行编写:
#include <stdio.h>
#include <stdlib.h>//用于调用srand函数
#include <time.h>//用于调用time函数
int main()
{
int num = 0;
int i = 0;
int a = 0;
printf("猜拳游戏0石头,1剪刀,2布\n");
while(1) //死循环:1是真说名一直满足条件则循环一直进行
{
//生成随机数
srand(time(NULL));//NULL系统特殊定义的零
int pc = rand()%2;//使其生成0,1,2
printf("随机数:%d",pc);//进行三次游戏
printf("请输入数字:");
scanf("%d",&num);
if(pc==0)
{
if(num==0)
{
printf("平手\n");
}
else if(num==1)
{
printf("你输了\n");
a = a-1;
}
else
{
printf("你赢了\n");
a = a+3;
}
}
else if(pc==1)
{
if(num==1)
{
printf("平手\n");
}
else if(num==2)
{
printf("你输了\n");
a = a-1;
}
else
{
printf("你赢了\n");
a = a+3;
}
}
else if(pc==2)
{
if(num==2)
{
printf("平手\n");
}
else if(num==1)
{
printf("你赢了\n");
a = a-1;
}
else
{
printf("你输了\n");
a = a+3;
}
}
else
{
if(!(num==0||num==1||num==2))
printf("不好意思您输入有误!!!\n");
}
if((a==9||a==6)||a==5)
{
printf("恭喜您赢了\n");
break;
}
else if(a==-2)
{
printf("不好意思您输了\n");
break;
}
i++;//更新循环变量
}//循环结束后再打印的结果
printf("欢迎您下次再来玩儿!!!");
return 0;
}
使用switch结构进行改进:(使用switch的弊端就是case会顺延过去遇到零就会继续运行相应的代码,因此需要调整对应的条件)
switch (pc)
{
case 0:
{
if (num == 0)
{
printf("平手\n");
}
else if (num == 1)
{
printf("你输了\n");
a = a - 1;
}
else
{
printf("你赢了\n");
a = a + 3;
}
}
case 1:
{
if (num == 1)
{
printf("平手\n");
}
else if (num == 2)
{
printf("你输了\n");
a = a - 1;
}
else
{
printf("你赢了\n");
a = a + 3;
}
}
case 2:
{
if (num == 2)
{
printf("平手\n");
}
else if (num == 1)
{
printf("你赢了\n");
a = a - 1;
}
else
{
printf("你输了\n");
a = a + 3;
}
}
6.while循环
循环三要素:循环体,循环变量,循环条件
while(循环条件eg:i<=100)(满足条件就继续循环否则就跳出循环)
{
循环体;(一直循环执行的语句)
循环变量:(一定要更新循环变量)
eg::i++;
}
死循环具体案例如上所示
希望我的文章对您有帮助,感谢您的浏览