| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7869 人关注过本帖, 1 人收藏
标题:菜鸟一名 想请教一下DO WHILE语句的运用
取消只看楼主 加入收藏
孤灯泰坦
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-6-3
结帖率:0
收藏(1)
已结贴  问题点数:5 回复次数:5 
菜鸟一名 想请教一下DO WHILE语句的运用
CLEAR
A=3
DO WHLE A<=6
 B=2
DO WHILE B<A
IF A/B=INT(A/B)
EXIT
ENDIF
B=B+1
ENDDO
IF A=B
??A
ENDIF
A=A+1
ENDDO
程序运行的结果是____________

答案给的是 3  5

然而我只能得出3。。。

思路如下:
a=3
判定a≤6的真假【很显然3小于等于6】
则b=2
    【进入下一个DO WHILE】
      判定b<a真假【2<3,判定为真,继续执行 】
      如果a/b=int(a/b)【3/2
并不等于1】   
      那么就执行exit【不符合这个条件 继续向下走】endif
       b=b+1【现在b等于3了】
      endDO【这个是判定b<a的DOWHILE 的一部分对吧?】
       【返回去重新判定b是否小于a,此时b=3 ,a也等于3,判定条件为假。执行endDO后面的语句。】
  如果a等于b【符合条件】
  显示a的值【输出3】
  endif
  a等于a加1【此时a为4】
endDO【这个是a≤6的一部分对吧?】
【此时回到第一个DOWHILE 判定a≤6的真假 此时a为4 条件语句为真】
于是b=2
判定b<a的真假【此时a为4  b为2 为真】
如果a/b=int(a/b)【此时是符合的!两边的值都为2】
于是exit

那么问题来了 5是从哪来的?
      

2016-06-04 08:32
孤灯泰坦
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-6-3
收藏
得分:0 
有人吗。。。
2016-06-04 08:48
孤灯泰坦
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-6-3
收藏
得分:0 
回复 3楼 taifu945
可是到a为4,b为2的时候就跳出了呀。。。怎么会有5呢?(⊙_⊙?)
2016-06-04 10:20
孤灯泰坦
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-6-3
收藏
得分:0 
回复 5楼 mywisdom88
谢谢 谢谢 帮大忙了
那个...道理我懂了 不过“B为[2,3,4,5]”是什么意思....

[此贴子已经被作者于2016-6-5 19:37编辑过]

2016-06-05 19:36
孤灯泰坦
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-6-3
收藏
得分:0 
回复 8楼 sdta
谢谢 谢谢 可算弄明白了 我以为是整个程序结束了呢
之前的确上机做了 然而还是弄不懂啊。。。看完帖子才明白的
2016-06-05 19:39
孤灯泰坦
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-6-3
收藏
得分:0 
回复 9楼 taifu945
哦哦 多谢 了解了 DOWHILE和 endDO 这一对是属于就近的那种吧?就像HTML里的<p>和</p>一样...
确认一下:
loop是需要返回头部重新判定一次
exit就直接跳出DOWHILE循环,执行endDO后面的语句了
这么说没问题吧
2016-06-05 19:49
快速回复:菜鸟一名 想请教一下DO WHILE语句的运用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025994 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved