黑马程序员技术交流社区
标题:
c语言-选择结构if语句
[打印本页]
作者:
汤书亚
时间:
2014-8-25 20:03
标题:
c语言-选择结构if语句
各位朋友,你们好:
我在听ios视频中遇到一个问题请求指点。C语言中选择结构讲到if时有一些困惑。选择结构中的:04-if第四种结构:
if (条件)
语句1;
语句2; 视频中老师讲到如果条件成立,就执行语句1,语句2就不会再执行。如果想要语句1和语句2有关联,需要加上{}。但是下面做练习时老师讲到:
int a = 10;
if (a>1)
printf("A\n");
printf("B\n"); 这个函数运行时输出的是A B。这个语句并没有加{},最后怎么也执行了语句2呢?
作者:
王振宇351x
时间:
2014-8-25 20:20
本帖最后由 王振宇351x 于 2014-8-25 20:28 编辑
你说的,执行语句1,不执行语句2,是这种情况.
if (a>1)
printf("A\n");else
printf("B\n");
理论上,他们可以写成这样,
if (a>1)
{
printf("A\n");
}
else{
printf("B\n");
}
但是,因为中括号里面,只有一个语句,所以可以省略.
至于,下面这种情况,
if (a>1)
printf("A\n");
printf("B\n");
如果没有中括号,上面的缩进是有问题的,应该是:
if (a>1)
printf("A\n");
printf("B\n");
有";",才表示完整的语句,if (a>1) printf("A\n"); 这才是一个完整的语句,后面的一行是另一个单独的语句了. if (条件)
语句1;
语句2; 语句2无论如何都会执行,语句1只有条件成立才会执行。
如果想要条件成立,语句1和语句2都一起执行,需要加上{}。
if (条件){
语句1;
语句2;}
作者:
★彬★卍囧神
时间:
2014-8-25 20:29
代码还会向下走
作者:
claud0623
时间:
2014-8-25 20:54
一楼正解,有没有else是你理解的和老师说的差别所在。
作者:
❤如止水之絕境
时间:
2014-8-25 21:53
只是说下一句不是属于条件语句的语句块,但程序还是会向下执行,如果要不执行打印b那一句,就要用else把那一句框起来
作者:
从今以后
时间:
2014-8-26 10:53
谢谢楼上几位回答
作者:
huangxuanheng
时间:
2014-8-26 14:46
只要条件语句没有出现异常,下个语句,就一定执行。如果不加大括号她不受if的
作者:
汤书亚
时间:
2014-8-30 19:39
王振宇351x 发表于 2014-8-25 20:20
你说的,执行语句1,不执行语句2,是这种情况.
if (a>1)
printf("A\n");else
哦,非常感谢,很详细。
作者:
泠风小和
时间:
2014-8-31 19:25
相当于
int a = 10;
if (a>1)
{
printf("A\n");
}
printf("B\n"); // 从这一句往后的代码,都不在if结构里
作者:
达摩八戒
时间:
2014-8-31 21:58
二楼分析的很好很强大。
作者:
王绍明
时间:
2014-8-31 22:44
程序 语句 一句一句执行
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2