在计算机如此普及的今天,if语句的功能介绍就不说了。其基本语法如下:
//写法一if
(条件表达式) { 语句 } //写法二if
(条件表达式) { 语句 }else
{ 语句 } //写法三if
(条件表达式) { 语句 }else if
(条件表达式) { //else if (条件表达式){语句}部分可重复n遍 语句 }else
{ 语句 }
else块只能出现在if语法的最后,且最多只能出现1次。else if块能出现若干次,但只能在if块的后面,不能在else块的前面。当各块里面的语句只有一句时,括号{}可以省略。不建议省略,因为省略后下面的语句让人容易糊涂。
//易让人看错的写法 //表示的是下面的意思if
(x == 1)if
(x == 1) {if
(y == 1)if
(y == 1) printf("x和y都等于1"); printf("x和y都等于1");else
else
printf("我其实是y==1的else"); printf("我其实是y==1的else"); }
switch语句完全可以用if语句代替,每一个case块的最后一句语句要有break语句,否则将运行到下一个case块中去。还需要注意的是,switch语句只适用于基本类型的变量作条件(包括扩充基本类型)。default块可以省略,但小雅建议您不要省略,即使不用也加上。
//基本类型的变量 //假定int i; //假定char str[];以下是错误的switch
(变量) {switch
(i) {switch
(str) {case
表达式1:case
1:case
"Sunday": 语句 语句 语句break
;break
;break
;case
表达式2:case
2:case
"Monday": 语句 语句 语句break
;break
;break
; ··· ··· ···case
表达式n:case
10:case
"Friday": 语句 语句 语句break
;break
;break
;default
:default
:default
: 语句 语句 语句break
;break
;break
; } } }
(表达式 ? 值1 :值2)这是带运算符的表达式,意思是:如果“表达式”的值为“真”,则返回“值1”,否则返回“值2”。if是控制语句而不是运算符,也不是表达式。
y = (x==2 ? 100 : 50) ; //写成如下相同功能的if语句if
(x == 2) { y = 100; }else
{ y = 50; }
逻辑表达式又叫布尔表达式,前面章节已经说过,布尔表达式只有2个值:TRUE和FALSE,即“真”和“假”。这其实是整型,0代表FALSE,0以外全是TRUE。因此逻辑表达式的写法就变得眼花潦乱。
//x不等于0时为true //同样的写法if
(x) {if
(x != 0) { y = 100 ; y = 100 ; } }else
{else
{ y = 50 ; y = 50 ; } }
//x等于0时为true //同样的写法 //少写=,意义就不一样了if
(!x) {if
(x == 0) {if
(x = 0) { //将0赋给x y = 100 ; y = 100 ; y = 100 ; //不可能运行这一句 } } }else
{else
{else
{ y = 50 ; y = 50 ; y = 50 ; } } }