[C语言] if和else语句

  • Post author:
  • Post category:其他


众所周知,c语言是结构化的程序设计语言。而c语言中的结构大致能分为三种

1.顺序结构 2.选择结构 3.循环结构,而今天想要分享的是选择结构(也叫分支语句)中的一种if else语句

什么是语句?

当然,在介绍if else语句前,我们要有一个总的概念,什么是语句?


语句是指令式编程语言最小的独立元素,表达程序需要执行的操作

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


1. 表达式语句


2. 函数调用语句


3. 控制语句


4. 复合语句


5.


空语句

而这次,甚至后面几次将要介绍的是控制语句。


控制语句



用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,


C


语言有九种控制语句:

也大致可以分为以下三类:

1.


条件判断语句也叫分支语句:


if


语句、


switch


语句;

2.


循环执行语句:


do while


语句、


while


语句、


for


语句;

3.


转向语句:


break


语句、


goto


语句、


continue


语句、


return


语句。

其实简明扼要一点,什么是语句?在c语言中,一个以结尾为;控制的就是一个语句

if else语句的语法结构

if else语句一共有三种语法结构

当然在开始了解if else之前,我们要知道C语言是如何判断真假的

一般来说,在c语言中,非0就是真,0就是假,有了这个前提,我们就能开始了解第一种语法结构

语法结构1.


if


(


表达式


)



语句


;

在该种语法结构中,if后表达式如果为真,则执行操作。

举例:

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

语法结构2.


if


(


表达式


)

语句


1


;

else

语句


2


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

语法结构3


//


多分支

if


(


表达式


1


)

语句


1


;

else if


(


表达式


2


)

语句


2


;

else

语句


3


;
语法结构3的大致用法于2相同,不过是else if可以多次使用。
当然还有一些细节可以补充。
1.if和else默认只能控制一条语句,如果带上{},那么可以控制一条或多条语句
2.else悬空问题

例:

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

大家第一眼看到这串代码的时候,很容易认为如果代码运行时,会输出“牛的”,但是在这里就很明显出现了悬空else的问题,导致最后输出的为空。

为什么会出现这样呢?

是因为else和离得最近的if匹配,也就是说,如果该代码没有进入if(a=1)中,那么就直接到return 0;了。

所以,这一点提醒我们,代码书写风格十分重要,如果我们将代码的if(a=2)和else对齐,那么就不容易出现误判的情况。



版权声明:本文为chenchzh23原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。