C语言
像这样写if语句,if();{
}
当条件为真时后面的程序段能被执行吗?
拜求大佬们解惑 分号表示本条语句结束
if 后面的语句不受if 管辖 if 语句 在 if() 的后面没有分号
if(逻辑表达式A)
{
如果逻辑表达式值为真,执行大括号里的语句
} 如果 if() 后有分号,那么如果值为假,也会执行大括号里的语句(应该是这样) if(/*表达式*/);
{
//代码
}
不管表达式成立还是不成立,都会执行下面的代码,因为 if 后面有一个分号,就是成真执行空语句,否则还是什么也不执行
你可以把 if(/*表达式*/); 理解为:
if(/*表达式*/) {
;
}
所以 if 和下面的代码块完全不能联系起来,答案就是:
不管 表达式 是否成立,下方的代码都可以执行,因为这里的 if 与下方的代码没有任何联系。 tommyyu 发表于 2022-11-14 16:45
不会
会 tommyyu 发表于 2022-11-14 16:45
不会
不..不会??! 嘉岳呀 发表于 2022-11-14 16:42
如果 if() 后有分号,那么如果值为假,也会执行大括号里的语句(应该是这样)
是的,就是这个意思,这里的 if 与大括号中的代码没有任何的联系 zhangjinxuan 发表于 2022-11-14 16:49
是的,就是这个意思,这里的 if 与大括号中的代码没有任何的联系
确实想表达这个意思{:10_285:}
{:10_266:}{:10_266:}{:10_266:} tommyyu 发表于 2022-11-14 16:52
确实想表达这个意思
然后……就是不会表达?{:10_277:} zhangjinxuan 发表于 2022-11-14 16:54
然后……就是不会表达?
刚才脑子抽了{:10_285:} 本帖最后由 jackz007 于 2022-11-14 18:11 编辑
你这样写:
if();
{
}
if() 后面带分号,意思是 if() 作为一条独立的语句已经结束,与后续的语句括号 {} 没有任何关系,就是说,无论 if 是真是假,后面语句括号内的语句都一定会被执行;
如果要写成条件执行,那就必须把 if() 后面的分号去掉,写成
if()
{
}
这个样子,这样,if() 才能连同后续的语句括号整体(甚至连同 else if 和 else 语句块,如果有的话)被视为同一条复合语句,只有 if 为真的时候,语句括号内的所有语句才会得到执行。 if()后不能加;吧?
刚学不懂。 Redmi 发表于 2022-11-14 17:35
if()后不能加;吧?
刚学不懂。
可以加,只是这种写法没有意义
页:
[1]