C语言———选择语句(Linux)

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

}

死循环具体案例如上所示

希望我的文章对您有帮助,感谢您的浏览

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值