Chyiqi7
Chyiqi7
采纳率100%
2019-08-01 19:12

求大佬们帮忙分析一下这段代码。

  • java
已采纳

下面这段代码为什么运行结果为3啊,求告知!

public static void main(String[] args)
    {   
    int a=1, b=2, c=3;
          if (a<0)
            if (b<0)
                c=10;
            else
                c=20;
        System.out.println(c);
    }
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

6条回答

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2年前

    else和最接近的if配对
    所以
    if (a<0)
    {
    if (b<0)
    {
    c=10;
    }
    else
    {
    c=20;
    }
    }

    点赞 2 评论 复制链接分享
  • qq_44609703 qq_44609703 2年前

    其实最外层的if给它套个什么都不干的else你就看懂了
    public static void main(String[] args){
    int a = 1,b = 2, c = 3;
    if(a<0){//因为赋值时a=1 1< 0 不成立 所以里面的里面的if都不执行直接跳掉加上去的else那里
    if(b<0){
    c = 10;
    }else{
    c = 20;
    }
    }else{}//加一个什么都不执行的else语句 因为1<0不执行 所以流程走到这里 而c最初被赋值为3所以说这个if语句并没有对c进行任何在赋值的操作所以c的值还是3
    }

    点赞 1 评论 复制链接分享
  • Remixes Remixes 2年前

    写代码要注意规范,加上括号逻辑就清楚了

    
    public static void main(String[] args) {
            int a=1, b=2, c=3;
            if (a<0){
                if (b<0){
                    c=10;
                }else{
                    c=20;
                }
            }
    
            //因为a=1,所有上面的条件都不满足,打印c=3
            System.out.println(c);
        }
    
    
    点赞 1 评论 复制链接分享
  • weizhiyonghux weizhiyonghux 2年前

    3,把括号带上,,自己写的都看不懂,。。。。

    int a=1, b=2, c=3;
    if (a<0){
    if(b<0){
    c=10;
    }else{
    c=20;
    }
    }else{
    c=3;
    }
    System.out.println(c);

    点赞 1 评论 复制链接分享
  • mozushixin_1 不会写代码的猴子 2年前

    因为你if(a<0)的条件不满足,直接跳过了,所以打印出来的c是初始化的值,没什么毛病啊

    点赞 1 评论 复制链接分享
  • mutou_chen 改不了ID 2年前

    加上括号 你就明白了
    public static void main(String[] args)
    {

    int a=1, b=2, c=3;
    if (a<0){
    ---------if (b<0){
    c=10;
    else
    c=20;
    ---------}

    -------}
    System.out.println(c);
    }
    所以这样写,有好处吗。。。没有 纯粹装B,浪费接盘人的时间

    点赞 1 评论 复制链接分享

相关推荐