回 帖 发 新 帖 刷新版面

主题:小问题一个

问题:一个三位数其各位数字的立方和刚好等于它本身
程序如下:for a=1 to 9
          for b=0 to 9
          for c=0 to 9
          x=a^3+b^3+c^3
          y=100*a+10*b+c
          if x=y then print y
          next c
          next b
          next a
          end
为什么next后面的a,b,c顺序不能调换,请解释一下

回复列表 (共11个回复)

沙发

循环好好学吧
这样子写你或许能明白:
for a=1 to 9
    for b=0 to 9
        for c=0 to 9
          x=a^3+b^3+c^3
          y=100*a+10*b+c
          if x=y then print y
        next c
    next b
next a
end

板凳

我想问为什么next后面的a,b,c顺序不能调换,请解释一下

3 楼

这是循环嵌套的问题,你去看一下QB的教程就明白了
写成这样子你就不用再去烦a,b,c调换位置的问题了
for a=1 to 9
    for b=0 to 9
        for c=0 to 9
          x=a^3+b^3+c^3
          y=100*a+10*b+c
          if x=y then print y
        next
    next
next
把 NEXT 后面的字母都去掉

4 楼

朋友你好
      
     在QB中规定FOR语句必须与NEXT语句成对出现
     例如你举的例子 可分为 内循环、中循环、外循环三对
     所以每对必须成对出现/

5 楼

for a=1 to 9
    for b=0 to 9
        for c=0 to 9
          x=a^3+b^3+c^3
          y=100*a+10*b+c
          if x=y then print y;
next a,b,c

6 楼

你想一下,如果c,b,a换成a,b,c,那会怎么样?
循环的结果是
第一次 x=3  y=100
第二次 x=6  y=200
  .
  .
  .
  .

这样下去你得不到结果

7 楼

想一下?
能换???

8 楼

我不知道这样说是不是容易理解!QB是按顺序执行的一种程序,他在执行完一个循环就会去检测是不是该NEXT了 如果 先结束A 那么以后的循环就不执行了!! A B C 的结束顺序错了 结果自然就会错了 所以不可以换!!!   不知道你可不可以明白!!!

9 楼

不可以换,理由很简单,
你可以坎套使用for,但无法交叉使用.
一个for语句体中,
for语句一直运行到next就又回到for开始的地方重新判断循环,
但for c找到next a,都不知道回哪里去才好,就不配对了.

10 楼

噢,原来是不能换的啊

我来回复

您尚未登录,请登录后再回复。点此登录或注册