A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 涐扪①起奮乧 中级黑马   /  2013-11-20 10:22  /  1350 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 涐扪①起奮乧 于 2013-11-20 21:19 编辑
  1. class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int x = 2;
  6.                 if(x>1)
  7.                 System.out.println(x);
  8.                 System.out.println(x+1);

  9.                 else
  10.                 {
  11.                         System.out.println("nono");
  12.                 }

  13.         }
  14. }
复制代码
我这个程序里,if只控制离它最近的那条语句,编译的时候出现
办公室自己48.java:10: 错误: 有 'if', 但是没有 'else'
                else
                ^
1 个错误
不是说System.out.println(x+1);
跟if没有关系吗?怎么还不能执行?

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

5 个回复

正序浏览
你好,你这条if...else语句是不正确的,if后面是要用括号括起来的,这样才能使用后面的else语句。你这样的话给人家断层了,前面的只是单单的if带着一个语句,后面的else找不到前面的if了
回复 使用道具 举报
if()语句的判断条件只能管理到它的下一条语句或下一个代码块。
也就是说有两种格式,
(1) if(x > 1)
            语句1;
    else

(2) if(x > 1)
        {
              语句1;
              语句2;
              语句......
        }
      else

在java代码中出现else,那么它之前必须有一个if和它配对,而且if和else之间只能有一条语句或一个{}括起来的代码块。
因此你在if后面连续写两条语句,后面再写else,破坏了if{}else{}的选择判断关系,所以肯定出错。

评分

参与人数 1黑马币 +1 收起 理由
dulinanaaa + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
帖子已分类,若仍有疑惑,可重新提问
回复 使用道具 举报
王柠 黑马帝 2013-11-20 10:33:07
藤椅
i1.f语句后如果只有一条语句则可以省去花括号{};
if(x>1)
System.out.println(x);
2.如果if语句中包含多条语句,则要以{}括起来,
if(x>1){
System.out.println(x);
System.out.println(x+1);
}
-----急需要技术分啊,:-D 谢了!

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
加一个代码块

class Demo
{
        public static void main(String[] args)
        {
                int x = 2;
                if(x>1) {
                System.out.println(x);
                System.out.println(x+1);
               }
                else
                {
                        System.out.println("nono");
                }

        }
}

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马