else是和之前与其最近的且不带else的if配对,有种情况我不太明白

在嵌套使用if语句时,C语言规定else总是(C)。A)和之前与其具有相同缩进位置的if配对B)和之前与其最近的if配对C)和之前与其最近的且不带else的if配对D)和... 在嵌套使用if语句时,C语言规定else总是( C )。
A)和之前与其具有相同缩进位置的if配对 B)和之前与其最近的if配对
C)和之前与其最近的且不带else的if配对 D)和之前的第一个if配对
这是题目,我知道答案说的是哪种情况,但是有种情况我还是不太明白:

大家看图上的这种情况,else与第一个if配对还是与第二个if配对,我觉得是第一个,这样的话这道题的答案就不对了。难道这样是与第二个if配对?
题目说的是嵌套使用if语句,这种情况算是嵌套吗,我觉得算是吧。
求解释~
展开
 我来答
wuhansen
推荐于2016-09-04 · TA获得超过4088个赞
知道大有可为答主
回答量:1383
采纳率:50%
帮助的人:1245万
展开全部

题目和你的感觉都是对的..

题目的意思是如果不写{}的时候的情况

如果你已经写了{}就视为一个代码块,里面的if和else都是独立的不会受到外面的影响,所以你图片那个else是和第一个if配对

但是比如

if //1
    if //2
    else

这时候else就是和第二个配对不是第一个

Pro_stars
2013-11-04 · TA获得超过159个赞
知道答主
回答量:30
采纳率:0%
帮助的人:33.1万
展开全部
//类型1:
if(a>b){
if(a>2*b){
printf("a>b\n");
}
}
else{
printf("a<b\n");
}
//类型2:
if(a>b)
if(a>2*b)
printf("a>2*b");
else
printf("no\n");

如上所示,这句话是针对没有用大括号限制作用域的if、else嵌套来说的:

对于类型1,因为有大括号来限制作用域,所以else与第一个if配对;

对于类型2,没有大括号限制作用域,else就与之前与其最近的且不带else的if配对,也就是第二个else;

不知道这样说你明白吗?

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式