if条件语句的嵌套

来源:matlab  › 交流  › 倒序浏览
  • 回答数

    2

  • 浏览数

    2457

  • 收藏数

    0

作者:繁星坠天行泪 发表于 2018-11-20 11:22:52
跳转到指定楼层
i=1;
j=i+1;
sum1=0;
sum2=0;
A=[1,2,3,4,5,6,7,8,9,10];
L=10;
for a=j: L
    if (A(a-1)<4)&&(A(a)>3)&&(A(a+1)>4)
        sum1=a;
        if (A(a-1)<5)&&(A(a)>4)&&(A(a+1)>5)
            sum2=a;
        end
    end
end


%%%%%%为啥结果中,sum1=4符合我的期望 ,但sum2=0呢? sum2不应该是5吗?求大神指点%%%%

分享:
回复

使用道具

该用户从未签到

新手上路

Rank: 1

积分
30
极客币
70
主题
8
帖子
22
注册时间
2018-10-23
在线时间
1 小时
性别
保密
发表于 2018-11-20 11:23:41 | 显示全部楼层
end的位置不对
你的嵌套导致sum1=4时,a=4,同时判断第二个if
这个if的条件不被满足(它需要a=5才满足)所以被跳过去了,sum2仍然是初值0

想要sum2=5需要把嵌套拆开
  • for a=j
  •     if (A(a-1)<4)&&(A(a)>3)&&(A(a+1)>4)
  •         sum1=a;
  •     end
  •     if (A(a-1)<5)&&(A(a)>4)&&(A(a+1)>5)
  •         sum2=a;
  •     end
  • end

复制代码


回复

使用道具 举报

该用户从未签到

新手上路

Rank: 1

积分
26
极客币
52
主题
6
帖子
19
注册时间
2018-10-23
在线时间
1 小时
性别
保密
 楼主| 发表于 2018-11-20 11:23:57 | 显示全部楼层
云天之巅 发表于 2018-11-20 11:23
end的位置不对
你的嵌套导致sum1=4时,a=4,同时判断第二个if
这个if的条件不被满足 ...

谢谢回复 恩确实是没考虑好
回复

使用道具 举报

高级模式 评论
您需要登录后才可以回帖 登录 | 立即注册 微信登录
关于作者
繁星坠天行泪

用户组:新手上路

  • 主题

    6

  • 帖子

    19

  • 关注者

    1