零基础学编程(8)——分支语句

声明在前

图中用于展示程序代码的软件是Visual Studio 2019 社区版,在微软官网即可下载,本人目前是大四,非计算机专业学生,零基础学编程系列为本人自学笔记及心得,文章中如有错误,欢迎各位批评指正,希望与大家一起学习进步。

C语言是一门 结构化(顺序结构、选择结构、循环结构) 的程序设计语言。
C语言中由一个分号;隔开的就是一条语句,例如:

printf("hello world!");
1+2;
;//空语句

今天主要学习的是分支语句(选择语句)

一.if语句

1、一分支
if(表达式)//若表达式为真,执行语句,否则就不执行
    语句;
2、两分支
if(表达式)//若表达式为真,执行语句1,否则就执行语句2
    语句1else
    语句2
int age;
scanf("%d\n",age);
if(age<18)
    printf("未成年\n")else
    printf("成年\n");
3、多分支
if(表达式1)       //若表达式1为真,则执行语句1
    语句1else if(表达式2)  //若表达式1为假,表达式2为真,则执行语句2
    语句2else             //若表达式1为假,表达式2为假,则执行语句3,
    语句3
int age;
scanf("%d\n",age);
if(age<18)
    printf("未成年\n")else if(age>=18 && age<28)
    printf("青年\n");
else if(age>=28 && age<50)
    printf("壮年\n");
else
    printf("老年\n");  

注:第二个条件为什么不可以写成“18<=age<28”?
若age=10,则18<=10不成立,条件为假则为0,而0<28成立,还是会输出青年。

4、悬空else
int a=1;
int b=2;
if(a==0)
    if(b==2)
    printf("123\n");
else//else默认和距离最近的if进行匹配,若要和第一个if匹配,需要把第二个if加到括号内
    printf("456\n");
return 0;//运行结果是空的,什么也不输出
5、if书写形式的对比

代码1

if(condition)
{
    return x;
}
return y;//与代码2意思相同,但可读性差,容易造成误解

代码2进行更正

if(condition)
{
    return x;
}
else
{
    return y;
}

代码3

int num=1if(num=5)//=是赋值;==是判断;此处应为==,但是容易漏写
{
    printf("123\n");
}
return 0;//此时可以输出123,无报错但是有bug

代码4进行更正

int num=1;
if(5==num)//把数值放在前,此时若漏写=,系统会进行提示
{
    printf("123\n");
}
return 0;//逻辑更加清晰,不易出错

二.switch分支语句

用于多分支的情况

int day=0;
scanf("%d",&day);
switch(day)//括号内必须是整型表达式
{
    case 1:
        printf("星期一\n");//case后面必须是整型常量表达式
        break;//执行完该case语句后直接跳出switch语句,实现真正的分支
    case 2:
        printf("星期二\n");
        break; 
    case 3:
        printf("星期三\n");
        break; 
    case 4:
        printf("星期四\n");
        break; 
    case 5:
        printf("星期五\n");
        break; 
    case 6:
        printf("星期六\n");
        break; 
    case 7:
        printf("星期日\n");
        break;
}

若星期一到星期五都输出工作日,星期六到星期日输出休息日,则不需要加break,break语句的实际效果是把语句列表划分为不同的部分。

int day=0;
scanf("%d",&day);
switch(day)//括号内必须是整型表达式
{
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        printf("工作日\n");
        break; 
    case 6:
    case 7:
        printf("休息日\n");
        break;
}

养成习惯:最后一个case语句都加上break

若输入的不是1-7,则需要default语句来处理:

case 6:
case 7:
	printf("休息日\n");
	break;
default:
	printf("输入错误\n");
	break;

示例:

int main()
{
    int m=2;
    int n=1;
    switch(n)
    {
        case 1:m++;
        case 2:n++;
        case 3:
            switch(n)
            {
                case 1:n++;
                case 2:m++;n++;
                break;
            }
        case 4:m++;
            break;
        default:
            break;
    }
    printf("m=%d\n,n=%d\n",m,n);
    return 0;
}

在这里插入图片描述
至此,本部分结束。因为对编程及计算机语言没有太多的基础,所以写的过于详细,主要作为我个人的学习记录,也希望能帮到跟我一样零基础但是想学习编程的同学。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值