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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 龏鈊づ廱鵆ぐ 中级黑马   /  2013-10-19 10:33  /  1203 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 龏鈊づ廱鵆ぐ 于 2013-10-19 17:22 编辑

1.  以下代码段的输出结果是?( b)
public class MyClass{
    public static void main(String argv[]){
        inti;
        intj;
        outer:for (i = 1; i < 3; i++)
            inner: for(j = 1; j < 3; j++) {
                    if (j == 2)
                    continue outer;
                    System.out.println
("Value for i = " +i + " Value for j = " +j);
}
    }
}
A. Value for i = 1 value for j = 1
B. Value for i = 2 value for j = 1
C. Value for i = 2 value for j = 2
D. Value for i = 3 value for j = 1
我运行了为什么老是还给错...谁能告诉下过程?

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

4 个回复

倒序浏览
首先答案应该是a,b吧:
首先:当 i=1时,进入内循环,当j=1时,直接执行输出语句  System.out.println
("Value for i = " +i + " Value for j = " +j); 此时 输出:Value for i = 1 Value for j = 1。
当j=2时 执行if语句 continue outer 此时跳出内循环 执行外循环 i=2.  
当 i=2时,进入内循环,当j=1时,直接执行输出语句  System.out.println
("Value for i = " +i + " Value for j = " +j); 此时 输出:Value for i = 2 Value for j = 1。
当j=2时 执行if语句 continue outer 此时跳出内循环 执行外循环 因为 外循环for中i<3,所以外循环结束,输出结果为:
Value for i = 1 Value for j = 1
Value for i = 2 Value for j = 1

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报
结果应该是AB
首先你的程序代码中有几处有问题,
你定义的两个变量全部写成intj,inti,这样写肯定是错误的啊,应该写成int i;int j变量类型和变量中间是有空格的
你外层循环少了一个正括号 outer:for (i = 1; i < 3; i++) 后面加上一个正括号
执行过程:
当执行外层循环,第一次:i=1,i<3条件满足,进入内部循环,j=1;j<3条件满足,执行下面语句,j不等于2再执行输出语句,Value for i = 1 Value for j = 1
再执行内部循环,这时j=2依旧满足条件执行下面的判断语句,条件也满足那么程序会跳转到外部循环。
执行外层循环,第二次:i=2,i<3条件满足,进入内部循环j=1;j<3条件满足,执行下面语句,j不等于2再执行输出语句,Value for i = 2 Value for j = 1
再执行内部循环,这时j=2依旧满足条件执行下面的判断语句,条件也满足那么程序会跳转到外部循环。
执行外部循环,第三次:i=3,i<3条件不满足,程序结束
最后结果是:
Value for i = 1 Value for j = 1
Value for i = 2 Value for j = 1
这题主要考的是continue关键字,和标签的用法
希望能帮助到你

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报
依旧 发表于 2013-10-19 14:36
结果应该是AB
首先你的程序代码中有几处有问题,
你定义的两个变量全部写成intj,inti,这样写肯定是错误的 ...

很详细谢谢明白了!!~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马