C++-c语言中 if…..if……if…..与if….else if…..else if…的区别

C++-c语言中 if…..if……if…..与if….else if…..else if…的区别

清晨说ぺ晚安 发布于 2017-05-30 字数 510 浏览 1179 回复 3

在编写老鼠走迷宫的程序时
这个

int visit(int i, int j) {
maze[i][j] = 1;
if(i == endI && j == endJ)
success = 1;
if(success != 1 && maze[i][j+1] == 0) visit(i, j+1);
if(success != 1 && maze[i+1][j] == 0) visit(i+1, j);
if(success != 1 && maze[i][j-1] == 0) visit(i, j-1);
if(success != 1 && maze[i-1][j] == 0) visit(i-1, j);
if(success != 1)
maze[i][j] = 0;
return success;

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

泛泛之交 2017-09-04 3 楼

。。。 本来就不会等价,if..else if.. 如果if成立,else if就不会判断了。但是写了很多个单独的if就会一个一个执行。。。。。。这根本是两回事 怎么可能等价

归属感 2017-08-21 2 楼

对 if。。if。。if。。判断的过程是一个条件成立在进行下一个条件的判断。 if。。。else if。。。else if 判断的过程是一个条件成立的话其他的条件就不判断了。 比如判断这是一只狗还是一只猫,还是一只老鼠,if、、、if判断是,如果这不是一只狗还有进行下面的判断,如果这是一只狗,也还要进行下面判断, 但是if。。else if 判断过程是 这是不是一只狗 进行下面的判断,如果是 就不判断了,直接进行下面的语句。。

偏爱自由 2017-08-13 1 楼

不等价的。我是这样理解的。你再进行判断处理的时候,如果用的是if的话,他会吧所有的判断都走一遍,但是如果是if ,else if的话,而至只走其中的一个。if,else if是相对来说比较严密点的吧。好多人都把if ,else if用成if了