if(a> b){

 我来答
乐海白35
2023-07-02 · TA获得超过284个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

程序的运行结果输出“over!”换行。

1、if语句两种形式:

c语言提供了三种形式的if语句,以下列出与题相关的两种形式:

形式1
if(表达式)语句。例:if(a>b) printf("%d\n",a);

形式2
if(表达式)语句1 else 语句2。

题中代码为例: 
if(a>c)
printf("%d\n",a);
else
printf("%d\n",b);

题中的if(a>b)是if语句的“形式1”,它的执行语句是一条“If形式2”语句。

问题中的代码等同于如下代码:

2、空悬else

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

用土话说,就是if和else太多了,它们之间要如何匹配。

在C、C++中空悬else 二义性由以下规定来解决:else 子句与最后出现的未被匹配的if 子句相匹配。

题中代码分析:

根据就近匹配原则,最后一个 else应该和if(a>c)相匹配。它做为一个整体成为if(a>b)的执行语句。

产生代码难懂的原因,是因为题中的写法不符合C编码风格建议:

总是使用复合语句括号以避免在以后修改代码时可能出现的混淆或错误。

扩展资料:

C语言 if...else if...else 语句

一个 if 语句后可跟一个可选的 else if...else 语句,这可用于测试多种条件。

当使用 if...else if...else 语句时,以下几点需要注意:

1、一个 if 后可跟零个或一个 else,else 必须在所有 else if 之后。

2、一个 if 后可跟零个或多个 else if,else if 必须在 else 之前。

3、一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被测试。

参考资料:

百度百科.if语句

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式