分支循环语句(1)

1、if 语句

* 基本语法结构:

                

*  表达式成立为真,不成立为假

*  在C语言中,0表示假,非零表示真

举例:判断一个数是否为奇数

#include<stdio.h>
int main()
{
	int n = 0;
    //输入
	scanf("%d", &n);
    //判断
	if (n % 2 == 0)
		printf("不是奇数");
	return 0;
}

    

2、if ---else语句

* 基本语法格式:

接下来,我们用同样的代码来举例:判断一个数是否是奇数

#include<stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	if (n % 2 == 0)
		printf("不是奇数");
	else
		printf("是奇数");
	return 0;
}

3、if---else if---else语句

* 基本语法格式:

注意:这里只是语法格式,并不是说if---else if---else语句仅有4个语句,我们可以根据具体题目具体执行语句个数

*举例:1、判断一个数是正数还是负数

#include<stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	if (n > 0)
		printf("%d是正数", n);
	else if (n < 0)
		printf("%d是负数", n);
	else
		printf("n是0");
	return 0;
}

  2、百分制成绩转换为五分制成绩

    本题要求:

          大于等于90分为A;

          小于90且大于等于80为B;

          小于80且大于等于70为C;

          小于70且大于等于60为D;

          小于60为E。

代码如下:

#include<stdio.h>
int main()
{
    int i = 0;
    scanf("%d", &i);
    if (i >= 90)
        printf("A\n");
    else if (i < 90 && i >= 80)
        printf("B\n");
    else if (i < 80 && i >= 70)
        printf("C\n");
    else if (i < 70 && i >= 60)
        printf("D\n");
    else if (i < 60)
        printf("E\n");
    return 0;
}

4、悬空else语句

       else总是跟最接近的if语句匹配

代码如下:

#include<stdio.h>
int main()
{
	int n = 0;
	int m = 0;
	scanf("%d %d", &n, &m);
	if (n == 1)
		if (m == 2)
			printf("haha\n");
	else
		printf("heihei\n");
	return 0;
}

上面这个代码是如何执行的呢?

我们分别输入1和2,打印出来的是什么?

       分别输入2和2,打印出来的是什么?

       分别输入1和0,打印出来的是什么?

很明显,上面的回答是有问题的,这就需要我们认真理解标题下面的那句话了:

                                           else总是跟最接近的if语句匹配

                                           else总是跟最接近的if语句匹配

                                           else总是跟最接近的if语句匹配

所以,我们把代码改造为下面的这样:

#include<stdio.h>
int main()
{
	int n = 0;
	int m = 0;
	scanf("%d %d", &n, &m);
	if (n == 1)
		if (m == 2)
			printf("haha\n");
		else
			printf("heihei\n");
	return 0;
}

这样看起来是不是更清楚了呢?接下来,我们再来回答上面的三个问题。

这是为什么呢?

1、输入1和2

2、输入2和2

3、输入1和0

       所以,在我们编写代码的时候,要注意代码的位置,这不仅仅是为了美观,同样也让人更容易理解,就像上面这个代码,如果我们不知道else总是跟最接近的if语句匹配的话,我们仅凭肉眼是无法发现问题的。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值