条件语句讲解

概述:

C语言语句可以分为一下五大类:

1.表达式语句                  2.控制语句

3.函数调用语句              4.复合语句

5.空语句

这里我们主要学习控制语句。控制语句包括以下三大类:

1.条件判断语句,也叫分支语句,包括 if 语句,switch 语句;

2.循环执行语句,包括do while 语句,while 语句,for语句;

3.转向语句,包括 break 语句,goto 语句,continue 语句,return 语句;

一.if语句:

if语句用于选择结构语句

1)if 单选择结构:

语法结构示例:

#include<stdio.h>
int main()
{
	int a = 0;
	scanf("%d", &a);
	if (a >= 0)
    {
		printf("%d", a);
    }
	return 0;
}

此代码中,输入一个数并赋值给a,如果a>0则返回1,为真,进行{}中的语句块,反之返回0,为假,跳过{}中的语句块,这就是常见的单选择结构语句。

2)else if 双选择结构:

语法结构示例:

#include<stdio.h>
int main()
{
	int a = 0;
	scanf("%d", &a);
	if (a >= 0)
	{
		printf("%d", a);
	}
	else
	{
		printf("%d", -a);
	}
	return 0;
}

在此代码中,如果a>0,返回1,为真,则输入if后第一个{}里的语句块,反之返回0,为假,输出else 后{}中的语句块,该代码的含义是输出一个数的绝对值,这就是常见的双选择结构。

3)else if else if 多选择结构:

语句示例:

#include<stdio.h>
int main()
{
	int a = 0;
	scanf("%d", &a);
	if (a >= 0)
	{
		printf("%d", a);
	}
	else if (a >= -10 && a < 0)
	{
		printf("%d", -a);
	}
	else
		printf("数字太小");
	return 0;
}

此代码中,当a大于等于0时,打印a,当a >= -10并且a < 0时,打印-a,当以上两种情况都不满足时,打印 数字太小 。当然,我们可以多次穿插else if语句,形成更多选择结构的语句。

注意:(1).if后没有加{}时默认只作用于if后第一个语句。

           (2).C 语言规定了 ifelse的就近匹配原则,即else和它上面的最近的没有配对的if配对,与书写格式无关

二.switch多分支语句:

当一个代码出现多个条件与分支时,使用else if语句非常麻烦,这时候可以将else if语句换成switch语句进行适当的简化。

语法结构示例:

#include<stdio.h>
int main()
{
	int a = 0;
	scanf("%d", &a);
	switch (a)
	{
	case 1:
		printf("星期一");
		break;
	case 2:
		printf("星期二");
		break;
	case 3:
		printf("星期三");
		break;
	case 4:
		printf("星期四");
		break;
	case 5:
		printf("星期五");
		break;
	case 6:
		printf("星期六");
		break;
	case 7:
		printf("星期天");
		break;
	default:
		printf("输入错误");
		break;
	}
	return 0;
}

此代码在a的值分别是1……7时分别输出 星期一……星期天,并在a的值不在1到7之间时输出 输入错误。

对于 break:多用于跳出循环,结束循环。对于以上代码,用于跳出switch语句。当将break去除时:switch在进入语句执行后,将沿顺序将后面的语句全部执行,直到退出switch语句。

#include<stdio.h>
int main()
{
	int a = 0;
	scanf("%d", &a);
	switch (a)
	{
	case 1:
		printf("星期一");
	case 2:
		printf("星期二");
	case 3:
		printf("星期三");
	case 4:
		printf("星期四");
	case 5:
		printf("星期五");
	case 6:
		printf("星期六");
	case 7:
		printf("星期天");
	default:
		printf("输入错误");
	}
	return 0;
}

如上,当代码break全部去除时,并将 1 或 2 赋给a,得到一下结果:

default:

当switch后表达式不符合下列所有case后常量值时,将从default进入switch并按顺序执行语句。

注:同一个switch中,case后的常量值必须互不相同,且不为小数;switch语句中表达式的值必须是整型、字符型或字符串类型,常量值1~n必须也是整型、字符型或字符串类型。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值