选择结构 if and switch

目录

一、if选择结构

1.单分支选择结构

例题:当x=1的时候输出x=1,当x=0时输出x=0

2.双分支选择结构

例题:判断我们输入的年份是否为闰年

3.多分支选择结构

例题:判断输入的字符类型

二、switch选择结构 

例题1:计算折扣后应付的钱

三、应用实例

输入三个整数,对其中奇数和偶数分别求和并输出。(要求自定义函数并调用)

2.输入整数1-7任意数字,输出对应星期几的英文,比如输入3,输出Wednesday。若输入1-7以外数字则提示输入错误。(使用switch)

3.输入某年某月某日,判断这一天是这一年的第几天? 

 4.输入年份和月份,求该月有多少天。


一、if选择结构

1.单分支选择结构

格式:if(表达式) 语句

说明:

表达式可以使任意表达式,语句也可以是复合语句

例题:当x=1的时候输出x=1,当x=0时输出x=0

#include<stdio.h>
int main()
{
    int x=0;//对x进行初始化
    if(x)//x等价于x!=0
        printf("x=1\n");//条件成立输出x=1
    printf("x=0\n");//不成立输出x=0
    return 0;
}

 输出结果:

#include<stdio.h>
int main()
{
    int x=1;//对x进行初始化
    if(x)//x等价于x!=0
        printf("x=1\n");//条件成立输出x=1
    printf("x=0\n");//不成立输出x=0
    return 0;
}

输出结果:

 可以看出与我们的预想不一样,这里本应该输出x=1,因为if判定成功我们执行了printf("x=1\n");这一句,当这一句执行这一句时,我们会接着执行下一句printf("x=0\n");所以会得到两个结果。

这个问题如何解决呢?

2.双分支选择结构

格式:if(表达式)语句

            else  语句

说明:

整个if……else 是一个语句,else必须与if匹配,不能单独使用。

上面单分支结构不能实现对于两种情况的正确输出这个时候if……else就显得尤为重要了废话不多说请看:

#include<stdio.h>
int main()
{
    int x=1;//对x进行初始化
    if(x)//x等价于x!=0
        printf("x=1\n");//条件成立输出x=1
	else
        printf("x=0\n");//不成立输出x=0
    return 0;
}

 输出结果:

这个时候我们就能达到想要的效果了 。

例题:判断我们输入的年份是否为闰年

  1. 第一步分析题目,我们需要一个变量来装输入的数据,还需要一个变量来记录。
  2. 第二部弄清楚如何判断为闰年,当年份能整出4但又不能整出100时或者能直接整出400的时候为闰年。
  3. 接下来就是编写代码啦
    #include<stdio.h>
    int Year(int year);
    int main()
    {
    	int year, flag;
    	printf("请输入年份:");
    	scanf("%d",&year);
    	flag=Year(year);//函数调用
    	 if(flag!=0)//等价于flag
    	{	
    		
    		printf("%d为闰年\n",year);//flag不为0,就代表为闰年
    	}
    	else
    	{
    	
    		printf("%d为平年\n",year);//flag为0,就代表为平年
    	}
    
    	return 0;
    }
    int Year(int year)
    {
    	int flag=0;这里我们将flag初始化,就避免在if里再写一个else了
    	if(year%4==0 && year%100!=0 || year%400==0)
    		flag=1;//条件成立将1的值赋给flag,否则就结束if判断
    	return flag;
    }

    输出结果:

 在生活中我们面临的选择远远不止两个,显然if……else这魅力就不行了呀,不急我们看下一个

3.多分支选择结构

格式:if(表达式)语句

        else if(表达式2)语句

        ……

        else if(表达式n)语句n

        else 语句n+1

直接整个例题感受一下吧!

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值