欢迎来到天天文库
浏览记录
ID:20748776
大小:32.50 KB
页数:6页
时间:2018-10-15
《c语言分支结构(2)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、4.在使用if语句中还应注意以下问题 (1)在三种形式的if语句中,在if关键字之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如:if(a=5)语句;if(b)语句;都是允许的。只要表达式的值为非0,即为“真”。如在if(a=5)…;中表达式的值永远为非0,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。 又如,有程序段:if(a=b)printf("%d",a);elseprintf("a=0");本语句的语义是,把
2、b值赋予a,如为非0则输出该值,否则输出“a=0”字符串。这种用法在程序中是经常出现的。 (2)在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。 (3)在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意的是在}之后不能再加分号。 例如:if(a>b){ a++; b++;}else{a=0; b=10;} if语句的嵌套 当if语句中的执行语句又是if语句时,则构成了if语句嵌套的情形。其一般形式可表
3、示如下: if(表达式) if语句; 或者为 if(表达式) if语句; else if语句; 在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。例如: if(表达式1) if(表达式2) 语句1; else 语句2; 其中的else究竟是与哪一个if配对呢? 应该理解为: 还是应理解为: if(表达式1) if(表达式1) if(表达式2) if(表达式2) 语句1;
4、语句1; else else 语句2; 语句2; 为了避免这种二义性,C语言规定,else总是与它前面最近的if配对,因此对上述例子应按前一种情况理解。voidmain(){inta,b;printf("pleaseinputA,B:");scanf("%d%d",&a,&b);if(a!=b)if(a>b)printf("A>B");elseprintf("A
5、canf("%d%d",&a,&b);if(a!=b) if(a>b)printf("A>B"); elseprintf("AB、A
6、:"); scanf("%d%d",&a,&b); if(a==b)printf("A=B"); elseif(a>b)printf("A>B"); elseprintf("A
7、条件表达式的值,否则以表达式2的值作为整个条件表达式的值。条件表达式通常用于赋值语句之中。 例如条件语句:if(a>b)max=a;elsemax=b; 可用条件表达式写为max=(a>b)?a:b;执行该语句的语义是:如a>b为真,则把a赋予max,否则把b赋予max。 使用条件表达式时,还应注意以下几点: 1.条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。因此max=(a>b)?a:b可以去掉括号而写为max=a>b?a:b 2.条件运算符?和:是一对运算符,不能分开单独使用。 3.条件运算
8、符的结合方向是自右至左。 例如:a>b?a:c>d?c:d应理解为a>b?a:(c>d?c:d)这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条件表达式。voidmain(){ inta,b,max; printf("inputtwonumbers:"); scanf("%d
此文档下载收益归作者所有