下列关于for循环和while循环的说法中哪个是正确的?(     )    
A.while循环能实现的操作,for循环也都能实现      
B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果      
C.两种循环任何时候都可替换      
D.两种循环结构中都必须有循环体,循环体不能为空

解决方案 »

  1.   

    while(条件){}
    for(表达式1;条件;表达式2){}
    如果子for没有了表达式1和表达式2是否就和while一样了呢?
    因此,我认为选A
      

  2.   

    楼上,for的表达式1在while里是有些问题的
      

  3.   

    我觉得是C
    循环的关键在于循环条件,这两者都是一样的
    不过也有印象似乎while有更多的功能
    另外do while循环至少要执行一次,呵呵
      

  4.   

    outerOne:for(int i=0;i<9;i++){
    outerTwo:for(int j=0;j<9;j++){
    for(int k=0;k<9;k++){
    if(i==2 && j==2 && k==2)break outerTwo;
    }
    }
    }
      

  5.   

    像这种跳转到外层循环,估计while就不行了
      

  6.   

    怎么不可以替换呢???这样不就行了吗???int i=0;
    outerTwo;while(i<9){
        int j=0;
        outerTwo;while(j<9){
            int k=0;
            while(k<9){
     if(i==2 && j==2 && k==2)break outerTwo;
    }
             k++;
        }
        j++;
    i++;
    }
      

  7.   

    A
    whil语句中 的
    do while和和for不一样
      

  8.   

    int i=0;
    outerone:while(i<9)
    {
    int j=0;
    outerTwo:while(j<9)
    {
    int k=0;
    while(k<9)
    {
    if(i==2 && j==2 && k==2)
    {
    System.out.println("i="+i+" j="+j+" k="+k);
    break outerTwo;
    }
    k++;
    }
    j++;
    }

    i++;
    }与下面这个效果是一样的
    outerOne:for(int i=0;i<9;i++){
    outerTwo:for(int j=0;j<9;j++){
    for(int k=0;k<9;k++){
    if(i==2 && j==2 && k==2)
    {
    System.out.println("i="+i+" j="+j+" k="+k);
    break outerTwo;}
    }
    }
    }
      

  9.   

    zhoudeliang(机械思考) ( ) 信誉:100    Blog 
    while(条件){}
    for(表达式1;条件;表达式2){}
    如果子for没有了表达式1和表达式2是否就和while一样了呢?
    因此,我认为选A
    ----------------------------------------------------------------------------
    能一样吗?
    在很多情况下,如果一个循环可以明确它的最大循环次数的时候,最好用for。
    而当一个循环体无法判定它的循环次数,这个时候最好用while。
    并且while中的条件跟for中的条件从选择上准则就不一样。
    我更倾向于B,个人看法。
      

  10.   

    我个人觉得在java里面两种语法都应该是相同的。只是在最开始的语言中例如basic
    pascal中起编译原理不一样,最初的语言中for通常是有一个步长的概念也就是一个计数器通过计数器的归0来判断循环的结束。但是随着c和c++java等高级语言的出现。for语句的功能越来越强大。逐渐减弱了for和while的区别使得for语句功能越来越强。
    所以我个人觉得两者的差别应该是不大的。
      

  11.   

    我觉得这个问题可以这样回答,计算机语言发展到今天,for 和 while都同时存在,这绝对不是为了适应人们输入的习惯,而是他们都有各自的用处,而且,我觉得这种用处不是体现在我们编码的时候,应该是体现在对编译的程序的优化方面,个人意见,仅供参考。
      

  12.   

    A是对的 for循环和while循环是可以相互转换的..更确切地说,for循环等同于一个while循环..B.有时候在编程的时候故意用到while/for的死循环.象 密码屏蔽<在sun中国社区看到的.>C.两种循环在任何时候都可以替换..我怎么感觉这样说太决对了..应该可以的.. 就是麻烦..D.C数据结构中写了一个链表的基本操作其中插入时的遍历那个位置我用的就是while(p&&i<j-1)
      

  13.   

    A.while循环能实现的操作,for循环也都能实现      
    C.两种循环任何时候都可替换      如果C正确,那A也正确了 当然不选C反例:for可以对循环进行初始化,while循环的初始化必须写在外面
      

  14.   

    如果c对,a肯定也对
    所以单选的话应该是a
      

  15.   

    A
    BD肯定错了
    C的的话  在有些情况下真的是不可以替换的
      

  16.   

    List list = new ArrayList();
    list.add("a");
    list.add("b");
    for(int i = 0, size1 = list.size(), size = list.size(); i < size; ++i)
    {
    ++size1;
    System.out.println(size1);
    }i,size1,size的作用域在while里面好象没有等价的
      

  17.   

    而且while里面没有什么可以让size = list.size()只执行一次
      

  18.   

    大家都是考试高手^_^如果大家只能用应试的手法做这些考题,只能说明题目本身出的就很有问题.A肯定是对的.C呢, 你要把while循环改成for循环,又没有限制条件(比如只能改循环体), 当然是能改的.但是for循环可以做一个初始化动作,while循环没法做, 需到循环体外面去做.比如,int sum = 0;for(int i = 1; i <= N; i++)//循环体执行完,i的值才增加;
    {
        sum += i;
    }int sum = 0;
    int i = 0;while(i++ <= N) //下面的i值已经变化;
    {
       sum += i;
    }象上面的情况你说不能替换也说的过去.
      

  19.   

    List list = new ArrayList();
    list.add("a");
    list.add("b");
    int i=0,size1 = list.size(),size=list.size();while(i<size){
        ++size1;
        System.out.println(size1);
        ++i;
    }
      

  20.   

    B和D怎么错了,我怎么觉得A也是不对的呢?好象说了老半天,没人把B和D的错误原因写出来吖~!
    如果让程序死循环,或者说是动态等待,用while(thread.isAlive = true)()
    那用for怎么来写呢?我只是提出个疑问,学习一下!
      

  21.   

    for的死循环更简单啊 
    C:    for(; 1 ;);
    JAVA: for(; true ;);
      

  22.   

    for的死循环不论C,C++,Java里都可以
    for(;;)
    {
    }to hbwhwang:我说的是作用域
      

  23.   

    我選A。
    for和  while可以转换,但是任何地方?有些勉强。
    for(;;;)
    {}

    do
    {}
    while()至少是有区别的。
    waiting......学习一下。
      

  24.   

    hbwhwang(catmiw的ID已经停用,现在用这个) ( ) 信誉:100    Blog  2006-11-13 20:31:06  得分: 0  
     
     
       List list = new ArrayList();
    list.add("a");
    list.add("b");
    int i=0,size1 = list.size(),size=list.size();while(i<size){
        ++size1;
        System.out.println(size1);
        ++i;
    }  
     
    与for 中i, size1, size 的作用域不同~A。单从操作或者功能实现来说,一定是成立的,但如上,如果严格说不能转换,好象也有道理,毕竟作用域在编程中是不能忽视的
    B。个人觉得有道理,没什么错误
    C。同A。
    D。肯定错误~如果写程序,建议该用while时就用while,该用for就用for,更易读,也更易想。不要遇到循环先写个for.
    另外使用outerOne outerTwo的那种程序算不算违背结构化设计?同问~
      

  25.   

    A才是正确的,c中太绝对化了,很多用for能实现的用while不能实现
    b和d就不用争了,肯定错误的,b就不用说了,d中for(;;)这样的方式显然是可以的
    while(true)这样也是可以的
      

  26.   

    都说A对是吗,那好  谁帮我替换一下这个。
    我从数据库中得到个结果集ResultSet rs=......
    然后我用while(rs.next())循环输出
    请问for循环怎么替换?
    期待中。
      

  27.   

    for(;rs.next());;)
      {  }
    楼上,这样能行吗?
      

  28.   

    for(;rs.next());;)
      {  }
    楼上,这样能行吗?
    ---这样不行,要这样
    for(rs.next();!rs.eof;rs.next())
    {
    }
      

  29.   

    wmzsl(王明哲) ( ) 信誉:100    Blog  2006-11-13 13:03:51  得分: 0   
     
       C.两种循环任何时候都可替换
    绝对没错
    =========================
      
     错了还说这么大声呀? for循环 == while循环 + 初始化语句。
    因某些情况语句可省,多的肯定可以变成少的,少的不一定能变成多的。故A对C错。B说的是一般情况,不是绝对语气,且符合实际情况,也算对吧。for(int i=0;i<9;i++){}
    while(true) {}
    是没有语法错误的,故D错!综上所述,单项选A,多项选AB。
      

  30.   

    phommy(顽石宫主) ( ) 信誉:100    Blog  2006-11-15 09:54:14  得分: 0   
     
       for(;rs.next());;)
      {  }
    楼上,这样能行吗?
    ---这样不行,要这样
    for(rs.next();!rs.eof;rs.next())
    {
    }
      ====================== for(;rs.next();)
      {
       
      }
    这么有啥不行的!你那么写跟原来的执行步骤就不一样了呀,而且也没有必要加那判断吧
      

  31.   

    to malligator(大螟) :这样的写法: while(rs.next())
    第一次循环就执行过一次rs.next()了如果写成 for(;rs.next();),第一次循环就报BOF错了~
    目前想到最简单的替换就是上面我写的那样,for(rs.next();!rs.eof;rs.next())
      

  32.   

    for语句使用起来比while更灵活,感觉是A不是C.
      

  33.   

    这帖子不错。
    大家都在就答案论题,是否这道题出的就有一点牵强?
    如果硬要有个答案,我觉得还是A,C确实有点太绝对了。B.D肯定是错的。
      

  34.   

    不知道选什么,但是如果找段代码,用for和while实现相同的功能,然后反编译,得到汇编指令,看看区别就知道了。
      

  35.   

    是多选吗?哈哈把题改一下,看看大家会选什么?
    下列关于for循环和while循环的说法中哪个是不正确的?(     )    
    A.while循环能实现的操作,for循环也都能实现      
    B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果      
    C.两种循环任何时候都可替换      
    D.两种循环结构中都必须有循环体,循环体不能为空
      

  36.   

    别外请看清这里是JAVA区,不要说C,这题好像是2级JAVA里的吧?
      

  37.   

    AC
    只考虑选项,不要管适用场合的话应该是AC吧
      

  38.   

    A对
    书上说的"它完全可以替代while语句"
    C错
    例如:while(1){}是正确的
    而for(;1;){}是错误的
    即是说for语句的判断条件须为boolean类型
      

  39.   

    楼上的居然写出while(1)!!!!!要打好基础!!!!!
      

  40.   

    个人觉得B是对的,其他的都是错的
    具体请看我下面的例子
    class TestFor2
    {
    public static void main(String[] args)
    {
    int i = 1, j = 1;
    for(i = 1; i <= 10; i++)
    {
    if (i == 3)
    continue;
    i++;
    System.out.print(i);
    }
    System.out.println();

    while(j <= 10)
    {
    j++;
    if(j == 3)
    continue;
    j++;
    System.out.print(j);
    }
    }
    }显示的结果为:
    257911
    357911请问这种情况下while的操作for怎么实现,同样for的操作while怎么实现???
      

  41.   

    我从数据库中得到个结果集ResultSet rs=......
    然后我用while(rs.next())循环输出
    请问for循环怎么替换?
    谁告诉我这个怎么写
      

  42.   

    我测试过了!!!while(rs.next) == for(;rs.next();)
    觉得for == while B太高深没看懂什么叫程序结果 
    AC
      

  43.   

    TO Hypercube1024:你的两段程序我分开写替代
    1.
    i=1;
    while(i<=10)
    {
     if(i!=3)  //建议你在for中也这样写(用if),continue显得很突兀而且不适于多重循环(当然这儿是java区,你可以用continue label;但感觉更不好)
     {System.out.print(++i);
     }
     i++;
    } //循环完成后有可能还应该调整i的终值,但你写的例子正好不必调整了2.
    for(;j<=10;)  //这个就很简单了,只替换这一句就可以
    {
    j++;
    if(j == 3)
    continue;
    j++;
    System.out.print(j);
    }
    TO dr_lou():
    while(rs.next) == for(;rs.next();)  这个我在上面已经说过了,不能这么写的 建议你找找~
      

  44.   

    单选:C
    多选:AC★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
      

  45.   

    呵,这题目有意思。我选A在写程序的时候用过while(true){};for(;;){};这两个实现的结果是一样的。所以,我觉得,for只不过就是个集成了循环条件的while