故事库-中国往事  > 所属分类  > 
[0] 评论[0] 编辑

if语句

if语句是指编程语言(包括c语言,C#,VB,java,汇编语言等)中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。

目录

if语句是指编程语言(包括c语言,C#,,java,VB,汇编语言等)中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。if的返回值为真或假,可以用bool型变量进行存储,占用一字节。

C语言中

三种形式

c语言提供了三种形式的if语句:

1、if(表达式)语句。

例如:

1
if(x>y)printf("%d",x);

2、if(表达式)语句1 else 语句2

例如:

1
2
if(x>y)printf("%d",x);
else printf("%d",y);

3、if(表达式1)语句1

else if(表达式2)语句2

else if(表达式3)语句3

else if(表达式m)语句m

else 语句 n

在每个语句中,可以有多个语句,但需要加上大括号

例:

1
if(x>y){printf("%d",x);break;}

空悬else

问题描述

if-else 语句引入了一种二义性问题称为空悬else (dangling-else) 问题,这种问题出现在当if 子句多于else 子句时。问题是这些else 子句分别和哪一个if 子句匹配。例如

1
2
3
4
5
6
7
8
if(minVal<=ivec[i])
if(minVal==ivec[i])
++occurs;
else
{
minVal=ivec[i];
occurs=1;
}

程序的缩进形式表明程序员相信else 应该与最外面的if 子句匹配,然而在C++中空悬else 二义性由以下规定来解决:else 子句与最后出现的未被匹配的if 子句相匹配。

在本例中if-else 语句实际的计算过程如下

1
2
3
4
5
6
7
8
9
10
11
if(minVal<=ivec[i])
{
//空悬else的解释结果
if(minVal==ivec[i])
++occurs;
else
{
minVal=ivec[i];
occurs=1;
}
}

解决方式

要想改变这种缺省的空悬else 匹配效果一种方法是把后来出现的if 放在复合语句中

1
2
3
4
5
6
7
8
9
10
if(minVal<=ivec[i])
{
if(minVal==ivec[i])
++occurs;
}
else
{
minVal=ivec[i];
occurs=1;
}
编码风格建议
总是使用复合语句括号以避免在以后修改代码时可能出现的混淆或错误。

C#中

作用
if语句根据布尔表达式的结果选择执行两个不同的代码块。
语法
if语句的语法如下所示(if和else是C#的关键字):
if(booleanExpression)
statement-1;
else
statement-2;
如果booleanExpression(布尔表达式)求值为true,就运行statement-1;否则运行statement-2。else关键字和后续的statement-2是可选的。如果没有else子句,而且booleanExpression求值为false,那么什么也不会发生,程序继续执行if语句之后的代码。注意,布尔表达式必须放在圆括号中,否则无法编译。

附件列表


0

故事内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

如果您认为本故事还有待完善,请 编辑

上一篇 武汉鹦鹉洲长江大桥    下一篇 四个伟大

同义词

暂无同义词
  • 友情链接:
  • 中原企业家
  • 华锐社区
  • 法学学习
  • 故事库
  • 舆情信息
  • 郑州商业观察
  • 美丽中国
  • 药食同源
  • Lovely China
  • 纯欲天花板
  • 留学生