if语句—超详解

目录

语法结构:

 ps:表达式详解:

ps:单条语句与多条语句:

ex:下面我们写几个例子来加深一下理解:


if语句是分支语句(循环结构)的一种:

语法结构:

1.

if (表达式)

   语句;

#include <stdio.h>

int main()
{
    int age = 0;
    scanf("%d", &age);
    if (age < 18)
    
       printf("未成年n");
    
}

 当age满足 <18 这个条件时,就可以继续执行下面的语句,打印出 "未成年"。

 2.

if (表达式)

   语句1;

else

   语句2;

#include <stdio.h>
int main()
{
    int age = 0;
    scanf("%d", &age);
    if (age < 18)
    {
        printf("未成年n");
    }
    else
    {
        printf("成年n");
    }
}

当age满足条件 <18 时,执行if下面的语句,打印出"未成年",

否则,就会执行 else 下面的语句,打印出"成年" 。

 

 3.

//多分支

if (表达式1)

       语句1;

else if (表达式2)3.

       语句2;

else

       语句3;

#include <stdio.h>
int main()
{
    int age = 0;
    scanf("%d", &age);
    if (age < 18)
    {
        printf("少年n");
    }
    else if (age >= 18 && age < 30)
    {
        printf("青年n");
    }
    else if (age >= 30 && age < 50)
    {
        printf("中年n");
    }
    else if (age >= 50 && age < 80)
    {
        printf("老年n");
    }
    else
    {
        printf("老寿星n");
    }
}

多分支语句:

从上到下依次判断,若符合 if 条件,就执行if下面的语句;若不符合 if ,就看是否满足下一条 else if 的条件;

直到找出符合条件的为止,若所有条件都不符合,就执行 else 的语句。

 

 

 ps:表达式详解:

如果满足表达式,即表达式为真,则执行语句;

若不满足表达式,即表达式为假,不执行语句。

那何为真假呢?

0表示假,非0表示真

ps:单条语句与多条语句:

想必大家也注意到了,这里我所写的语句都是单条语句,只有一个printf语句,

当我们要写多条语句时,要用到{},将代码括起来。

if  (age < 18)

    printf("未成年n");

    printf("不能喝酒n");

else

    printf("成年");

 

if语句默认只会执行一条语句,像这样输入多条语句时,编译器会认为if else 中间多出了一条外来语句,不符合if语句的语法 ,所以会报错。

我们必须要用{}括起来才行!

#include <stdio.h>
int main()
{
    int age = 0;
    scanf("%d", &age);
    if (age < 18)
    {
        printf("未成年n");
        printf("不能喝酒n");
    }
    else
        printf("成年n");
        printf("适量饮酒n");
    return 0;
}

 

这里当我们输入15时,本想再else中输出的语句也会打印出来,这就说明else的第二条语句不包含在else中;

所以要用{}括起来。

为了避免这种错误,我们要养成加{}的习惯!!!


ex:下面我们写几个例子来加深一下理解:

1.悬空else

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 2;
    if (a == 1)
        if (b == 2)
            printf("hehen");
    else
        printf("hahan");
    return 0;
}

这段代码的结果是什么都不打印!

ps: else的匹配:else是和它离的最近的if匹配的。

2.if书写形式的对比

//代码1

if (condition)

{

   return x;

}

return y;

这段代码的意思也是if...else

return 一次之后就会结束函数,如果符合condition 返回x, 不符合,返回y

逻辑不是很清晰。

//代码2

int num = 1;

if (num == 5)

{

   printf("hehen");

}

这里if的表达式为判断是否相等,判断是否相等的符号为"==",

但是我相信几乎每个人都会犯这样的错误:

 if (num = 5)

这样一来就不是判断了,而是将5赋值给num!!!

为了避免这样的错误,我们可以将"=="两边的表达式交换一下:

if (5 == num)

这样写的话,就算你只写了一个=,编译器就会报错,就可以及时得改正过来。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>