鱼C论坛

 找回密码
 立即注册
查看: 3614|回复: 13

[已解决]C语言

[复制链接]
发表于 2022-11-14 16:39:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
像这样写if语句,if();
                        {
                        }
当条件为真时后面的程序段能被执行吗?
拜求大佬们解惑
最佳答案
2022-11-14 16:47:55
if(/*表达式*/);
{
    //代码
}
不管表达式成立还是不成立,都会执行下面的代码,因为 if 后面有一个分号,就是成真执行空语句,否则还是什么也不执行

你可以把 if(/*表达式*/); 理解为:
if(/*表达式*/) {
    ;
}
所以 if 和下面的代码块完全不能联系起来,答案就是:

不管 表达式 是否成立,下方的代码都可以执行,因为这里的 if 与下方的代码没有任何联系。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-14 16:41:33 | 显示全部楼层
分号表示本条语句结束
if 后面的语句不受if 管辖
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 16:42:09 | 显示全部楼层
if 语句 在 if() 的后面没有分号
if(逻辑表达式A)
{
    如果逻辑表达式值为真,执行大括号里的语句
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 16:42:53 | 显示全部楼层
如果 if() 后有分号,那么如果值为假,也会执行大括号里的语句(应该是这样)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-11-14 16:47:55 | 显示全部楼层    本楼为最佳答案   
if(/*表达式*/);
{
    //代码
}
不管表达式成立还是不成立,都会执行下面的代码,因为 if 后面有一个分号,就是成真执行空语句,否则还是什么也不执行

你可以把 if(/*表达式*/); 理解为:
if(/*表达式*/) {
    ;
}
所以 if 和下面的代码块完全不能联系起来,答案就是:

不管 表达式 是否成立,下方的代码都可以执行,因为这里的 if 与下方的代码没有任何联系。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 16:48:18 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 16:48:32 | 显示全部楼层

不..不会??!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 16:49:08 | 显示全部楼层
嘉岳呀 发表于 2022-11-14 16:42
如果 if() 后有分号,那么如果值为假,也会执行大括号里的语句(应该是这样)

是的,就是这个意思,这里的 if 与大括号中的代码没有任何的联系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 16:52:11 | 显示全部楼层
zhangjinxuan 发表于 2022-11-14 16:49
是的,就是这个意思,这里的 if 与大括号中的代码没有任何的联系

确实想表达这个意思

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 16:54:09 | 显示全部楼层
tommyyu 发表于 2022-11-14 16:52
确实想表达这个意思

然后……就是不会表达?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 16:54:34 | 显示全部楼层
zhangjinxuan 发表于 2022-11-14 16:54
然后……就是不会表达?

刚才脑子抽了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 17:08:26 | 显示全部楼层
本帖最后由 jackz007 于 2022-11-14 18:11 编辑

          你这样写:
if();
{
}
           if() 后面带分号,意思是 if() 作为一条独立的语句已经结束,与后续的语句括号 {} 没有任何关系,就是说,无论 if 是真是假,后面语句括号内的语句都一定会被执行;
           如果要写成条件执行,那就必须把 if() 后面的分号去掉,写成
if()
{
}
          这个样子,这样,if() 才能连同后续的语句括号整体(甚至连同 else if 和 else 语句块,如果有的话)被视为同一条复合语句,只有 if 为真的时候,语句括号内的所有语句才会得到执行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 17:35:24 | 显示全部楼层
if()后不能加  ;吧?
刚学不懂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-15 09:08:21 | 显示全部楼层
Redmi 发表于 2022-11-14 17:35
if()后不能加  ;吧?
刚学不懂。

可以加,只是这种写法没有意义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 10:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表