c语言if语句的语法错误,c语言ifcase分支选择结构.docx

C 言if case分支 构

C 言if case分支 构复合 句在C 言中,用

一 花括号“{ }”将若干条 句括起来成 一个 句 ,称

复合 句,其一般形式如下: { 句 1; 句 2; 句 3;??;

句 n ; }花括号内 句的数量、 型不限,可以是声明

句、 句等;一个复合 句在 法上被 一条 句。

例如: #include

/* 量 a,b,c 只能在此复合 句内使用*/a=10; b=20;c=a+b;

printf

(“

%d,%d ,

n” ,a,b,c

) ;}

??

} 注意,复合 句内

的定 量 句要出 在 行 句之前,且复合 句内定

的 量只能在 复合 句内部有效。4.2 二分支 构一、

的二分支 构C 言的 if 句有两种基本形式。 1、

独立 if 构( 1) 法形式if(表达式) 句其中,①if

是 C 言的关 字; ②表达式可以是任意的表达式且一

括号不可缺省; ③ 句可以是一条 句或复合 句。 ( 2) 行 程首先 算表达式的 ,然后根据其真假来决定程序

的走向。若表达式 真 ( 非零) 行 句, 若 假(

零) 不 行 句。退出分支 构后程序 行if 构

后面的 句。 4.1 if 构流程 ( 3) 例 if(a>b)b++;

若 a 的初 20 , b 的初 10 , 表达式 (a>b) 真, 行 句“ b++; ”a, 的 果 20,b 的 果 11 。若 a 的初

值为 10 ,b 的初值为 20 ,则表达式 (a>b) 为假,不执行语句“ b++; ” ,a则和 b 均保留初值 :10 和 20 。如果语句为复合语

句,将以上程序段改为:

if(a>b){ b++;a++; }

则,若

a 的

初值为

20 ,b

的初值为

10 ,则表达式

(a>b)

为真,执行语

句“ b++; ”和“ a++;a”的,结果为 21,b 的结果为 11 。而若 a 的初值为 10 ,b 的初值为 20 ,则表达式 (a>b) 为假,语句 “ b++; ”和“ a++; ”均不被执a行的,结果仍为 10,b 的结果仍为

。若将复合语句的一对花括号去掉则程序段成为:

if(a>b)b++;a++;此时,语句“a++; ”已不再属于if结构,不

管条件为真或为假,对于整个程序来说它都将被执行。2、

if-else

结构(

1)语法形式

if(表达式)语句

1else

语句

2 其

中,①

if 和

else

是 C 语言的关键字,表达式及语句

1 、语句

2 解释同上;②

else

不能独立存在,它必须与

if

语句配对、

组合方可使用, 否则会产生语法错误; ③ else后面绝对不能跟

条件表达式,它执行的条件是隐含的,即与之配对的if 的反

面。( 2)执行过程首先计算表达式的值,然后根据其真假

来决定程序的走向。若表达式为真(值为非零)则执行语句

1,若为假(值为零)则执行语句2。退出分支结构后程序继

续执行 if-else 结构后面的语句。 图 4.2 if-else 结构流程图( 3)举例 if(a>b)b++;elsea++; 若 a 的初值为 20 , b 的初值为

10 ,则表达式 (a>b) 为真,执行语句“ b++; ” , 然后退if出-else结构,则 a 的结果为 20,b 的结果为 11 。若 a 的初值为 10 ,

b 的初值为 20 ,则表达式 (a>b) 为假,执行语句“ a++; ”然,后退出 if-else 结构,则 a 的结果为 11,b 的结果为 20 。前文曾提到过语句 1 和语句 2 都可以是复合语句, 但如果不慎将

语句 1 的花括号丢了,则编译时会出现语法错误,如下例:

main(){int a=1,b=2;if(a>b) a++; b--;else a--; } 该程序执行时会出现错误提示信息:“ Error:Misplaced else in function main ”,因为此时 else 不能与 if 合法匹配,而 else 又不能独立存在,所以出现了上述错误。二、嵌套的二分支选择结构

1、在 if 语句中嵌套分支结构 ( 1)语法形式

if(表达式 1) if

(表达式 2) 语句 1 else

语句 2else

语句 3 其

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值