分支语句之 if 语句

(1).首先需要知道在C语言中什么是语句?

                          用分号隔开的叫一条语句

                          “ ” ; //注意,这个代表的是一个空语句。

(2).if分支语句(选择结构)

1.语法结构:

单分支:如下

 if(表达式)//表达式为真就执行下面的语句,表达式为假不执行

     语句;

                    (tip:在C语言中非0就表示真,0表示假)

双分支:如下

if(表达式) //表达式为真就执行语句1,否则就执行语句2

   语句1;

else

   语句2;

多分支:如下

if(表达式1)

    语句1;

else    if(表达式2)

    语句2;

else

    语句3; 

//表达式1如果为真就执行语句1,如果为假,就判断表达式2,为真执行语句2,否则执行语句3

例如下代码:判断一个人是否成年(规定大于等于18成年)

#include <stdio.h>
int main()
{
  int age;
  scanf("%d",&age);  //随意输入一个人的年龄
 
 if(age>=18)
    printf("这个人已经成年");
  else
    printf("这个人还未成年");
   return 0;
}

注意:在使用if语句的时候,可以添加一个大括号将所需要执行的语句括起来,如果没有大括号,那就会默认只执行if后的一条语句。具体如下

#include <stdio.h>
int main()
{
	int age;
	if (age >= 18)
		Printf("此人已经成年")//表达式如果成立,此时就默认执行该语句 
    return 0;
}
#include <stdio.h>
int main()
{
  int age;
  scanf("%d",&age);  //随意输入一个人的年龄
 
 if(age>=18)
   {                //由于有大括号,所以如果表达式为真的时候,就会执行以下两个语句
     printf("这个人已经成年");
     printf("可以谈恋爱")
   }
  else
    printf("这个人还未成年");
   return 0;
}

eg:用一个代码来判断一个人是少年,青年还是成年(规定小于16为少年,16到26是青年,大于26是成年)

#include <stdio.h>
int main()
{
  int age;
  scanf("%d",&age);  //随意输入一个人的年龄
 
 if(age<18)
    printf("这个人是个少年");
  else if(age>=16&&age<=26)//c语言中限定数值范围的写法
    printf("这个人是个青年");
  else
    printf("这个人已成年");
   return 0;
}

  (tip:上述代码中年纪小于26,大于16的写法与数学中的表达式有所差异,需注意)

悬空else

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
		if (b == 2)
			printf("shuiba\n");
	else
		printf("don't shui\n");
    return 0;
} 

       此处运行代码应该是什么都打印不出来,这是因为else与离的近的if匹配。上述代码就是误导else与第一个if语句匹配,这也是书写代码的问题,小编在这里也劝导大家在书写自己的代码时要做到简洁,方便阅读。如果上述代码写成如下形式,就会很容易理解。

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
		if (b == 2)
			printf("shuiba\n");
		else
			printf("don't shui\n");
    return 0;
}

易错点

在if语句中如果在括号中写为如下

if (a = 2)

  语句;

      此时程序会运行,但是是错误的,这是因为if后的括号里要表达出一个判断的过程,这里的a = 2,是赋值,这是与数学中不一样的地方,如果需要判断是否相等,需要用“==”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值