哪位能解答一下啊 迫切想知道答案

img


不理解为什么答案会得出十六和六十 就这么计算下来 只能算出十八和六十

题5.99:while(a = 14); 是赋值语句,最终 while(14)所以始终为真,这里只有等到 if (y > 50) break; 条件满足时才会跳出do while() 循环。
第一次循环:a = 12, y = 12;
第二次循环:a = 16, y = 28;
第三次循环:a = 16, y = 44;
第四次循环:a = 16, y = 60;
if (y > 50) break; 跳出循环

a = 14,不是a == 14
所以y每次+=14
而a一直14,直到break

  1. 对于题【5,99】中,
    do{
    循环体
    }while(条件表达式);
    这种写法,会先执行一次do循环体,然后判断条件表达式是否为true,然后再看是否要执行do中循环体。对于题中while表达式为a==14,在第一次判断会是false,所以循环体只执行一次,得出a=12,y=12。

img

  1. 如果while中表达式是书写错误,我们假定是对,如改成a>10。如此,do中循环体会反复执行。如:
  2. 第一次执行do中内容,a=12,y=12
  3. 第二次执行do中内容,a=14,y=26
  4. 第三次执行do中内容,a=16,y=42
  5. 第四次执行do中内容,a=18,y=60
    y>50,执行break退出循环
    在此种情况下,得出a=18,y=60.

img

所谓尽信书,不如无书,对于编程,要时刻持有怀疑精神。

这题答案错了,铁定是16和60。你用自己的编译器跑一遍应该也是16和60。(望采纳)