if分段函数c语言,c语言if语句语法
我们写的函数里可以有多个语句,但是这些语句总是从前到后执行的。除了从前到后的顺序执行,有时候我们还需要检查一个条件,然后根据检查的结果执行不同的后续代码。在C语言中,它可以用分支语句来实现,例如:
如果(x!=0) {printf(x不等于0!\ n’);}
x!=0表示“x不等于0”的条件。这个表达式称为控制表达式。如果条件为真,将执行{}中的语句;否则不会执行{}中的语句,直接跳转到}之后。而如果控制表达式改变了程序的控制流程,不是从前到后顺序执行,而是根据不同的条件执行不同的语句。这个控制流被称为分支。在上例中!=符号表示“不等于”。像这样的运算符有:
关系运算符和等式运算符
运算符
意义
==
胜任
!=
不等于
比.更大
不到
=
大于或等于
=
小于或等于
使用上述运算符时应注意:
1.这里的==表示数学中的等式关系,相当于数学中的=号。初学者常犯的一个错误就是在控制表达式中写==了。在C语言中,=号是赋值运算符,两者的含义完全不同。
2.如果表达式表示的比较关系为真,则值为真;否则为假,在C语言中分别用1和0表示。例如,如果x是-1,那么表达式x 0的值是0,表达式x -2的值是1。
3.在数学中,a b c意味着B既大于A又小于C,但作为C语言表达式却不是这样。以上运算符都是左组合。请想一想这个表达代表了什么。
4.这些运算符的两个操作数应该是同一类型,比如两边都是字符型、整数型或者浮点型,但是两个字符串不能比较。我们以后会介绍比较字符串的方法。
5、==还有!=称为EqualityOperator,其他四个称为关系运算符。相等运算符的优先级低于关系运算符。
If语句可以用来构成分支结构。它根据给定的条件进行判断,决定执行某个分支程序段。在C语言中,if语句有三种基本形式。
1.基本形式:如果
If(表达式)语句
它的语义是:如果表达式的值为真,则执行下面的语句,否则,不执行该语句。该过程可以表示为下图。
下面是一个基本形式的例子:
# include stdio . h int main(void){ inta,b,maxPrintf(请输入两个用逗号分隔的数字:\ n );scanf(%d,%d ,a,max=a;if(max b)max=b;printf(max=%d\n ,max);系统(“暂停”);return0}
运行结果:
在这个示例程序中,输入两个数字A和b,先给一个变量max,然后用if语句判断max和b的大小,如果max小于b,就把b给max。所以max里面总是有一个很大的数,最后输出max的值。
2.if-else形式
If(表达式)语句1;Else语句2;
它的语义是:如果表达式的值为真,执行语句1,否则执行语句2。其执行过程可以表示为下图。
以下是if-else形式的示例:
# include stdio . h int main(void){ inta,b;Printf(请输入两个用逗号分隔的数字:\ n );scanf(%d,%d ,a,if(a b) printf(max=%d\n ,a);else printf(max=%d\n ,b);系统(“暂停”);return0}
运行结果:
输入两个整数并输出其中最大的一个。用if-else语句判断A和b的大小,如果A大,输出A,否则输出b。
3.if-else-if形式
if语句的前两种形式通常用于两个分支的情况。当有多个分支选择时,可以使用if-else-if语句,其一般形式为:
If(表达式1)语句1;Else if(表达式2)语句2;Else if(表达式3)语句3;… else if(表达式m)语句m;Else语句n;
它的语义是:依次判断表达式的值,当某个值为真时,执行其对应的语句。然后跳转到整个if语句之外,继续执行程序。如果所有表达式都为假,则执行语句n,然后继续后续过程。if-else-if语句的执行过程如下图所示。
以下是if-else-if形式的示例:
# include stdio . h int main(void){ charc;Printf(请输入一个字符:\ n );c=getchar();If(c 32) printf(这是一个控制字符。\ n’);Elseif(c=0 c=9) printf(这是一个数字。\ n’);Elseif(c=A c=Z) printf(这是大写字母。\ n’);Elseif(c=a c=z) printf(这是一个小写字母。\ n’);Elsprintf(这是其他类型的字符\ n );系统(“暂停”);return0}
运行结果:
这个例子需要区分键盘输入字符的类型。可以根据输入字符的ASCII码来判断类型。根据ASCII代码表,小于32的ASCII值是控制字符。“0”和“9”之间的数字为数字,“A”和“Z”之间的大写字母为小写字母,其余为其他字符。这是一个多分支选择问题。用if-else-if语句编程,判断输入字符的ASCII码范围,分别给出不同的输出。比如输入是“g”,输出显示是小写字符。
使用if语句时,还应注意以下问题:
在if语句的三种形式中,表达式跟在if关键字后面。该表达式通常是逻辑表达式或关系表达式,但也可以是其他表达式,如赋值表达式,甚至是变量。例如:
If(a=5)语句;If(b)语句;
都可以。只要表达式的值不为0,就是“真”。例如:
if(a=5)…;
中表达式的值始终为非0,因此必须始终执行后续语句。当然,程序中可能不会出现这种情况,但在句法上是合法的。
作为另一个例子,下面的程序段:
if(a=b) printf(%d ,a);else printf( a=0 );
这个语句的语义是将B的值赋给A,如果不为0,则输出该值,否则输出字符串“a=0”。这种用法经常出现在程序中。
在if语句中,条件判断表达式必须用括号括起来,并且必须在语句后面加上一个加号。
在if语句的三种形式中,所有语句都应该是单个的。如果要在满足条件时执行一组(多条)语句,必须用{}将这组语句括起来,形成一个复合语句。但需要注意的是,不能在}之后给加分。例如:
if(a b){ a;b;} else { a=0;b=10}
if语句的嵌套
当if语句中的执行语句是if语句时,就构成了if语句的嵌套。它的一般形式可以表示如下:
If(表达式)if语句;Or: if(表达式)if语句;Else if语句;
嵌套的if语句可能又是if-else类型,这将导致多个if和其他if的重叠。这时候要特别注意if和else的配对。例如:
If(表达式1) if(表达式2)语句1;Else语句2;
else匹配哪个if?应该理解为:
If(表达式1) if(表达式2)语句1;Else语句2;
或者应该理解为:
If(表达式1) if(表达式2)语句1;Else语句2;
为了避免这种歧义,C语言规定else总是和前面最近的if成对出现,所以上面的例子要按照前一种情况来理解。
下面的例子说明了这个问题:
# include stdio . h int main(void){ inta,b;Printf(请输入两个数字a和b:\ n );scanf(%d,%d ,a,if(a!=B)if(A B)printf( A B \ n );elseprintf( A B \ n );elseprintf( A=B \ n );系统(“暂停”);return0}
运行结果:
比较两个数的大小关系。在这个例子中,使用了if语句的嵌套结构。嵌套结构本质上是针对多分支选择的。其实有三个选择,A B,A B或者A=B,这类问题也可以用if-else-if语句来做。并且程序更加清晰。因此,if语句的嵌套结构一般很少使用。使程序更容易阅读和理解。
例如,下面的代码:
# include stdio . h int main(void){ inta,b;Printf(请输入两个数字a和b:\ n );scanf(%d,%d ,A,if(A==B)printf( A=B \ n );else if(A B)printf( A B \ n );else printf( A B \ n );系统(“暂停”);return0}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。