鱼C论坛

 找回密码
 立即注册
查看: 3589|回复: 9

while的嵌套的循环语句执行了一次就停止了 请大神解答下

[复制链接]
发表于 2017-2-28 21:07:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. red=4
  2. yellow=4
  3. green=7
  4. while red:
  5.     red=red-1
  6.     while yellow:
  7.         yellow=yellow-1
  8.         while green:
  9.             green=green-1
  10.             if red+yellow+green==8:
  11.                 print(red,yellow,green)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-28 21:10:28 | 显示全部楼层
或者 有大神知道怎么进行分布debug吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-28 21:17:20 | 显示全部楼层
修改了一下你的程序。
  1. red=4
  2. while red:
  3.     red=red-1
  4.     yellow=4
  5.     while yellow:
  6.         yellow=yellow-1
  7.         green=7
  8.         while green:
  9.             green=green-1
  10.             if red+yellow+green==8:
  11.                 print(red,yellow,green)
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +2 收起 理由
BREAKFATE + 5 + 5 + 2 感谢楼主无私奉献!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-2-28 21:38:11 | 显示全部楼层
全局变量的问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-28 22:26:15 | 显示全部楼层
本帖最后由 自然水 于 2017-2-28 22:44 编辑

亲,你自己盯着代码,用脑子循环几遍:

3 3 2
这里green 已经被赋值为2了
2 2 1???
就没有然后了。。。

如果是课后习题,你参考我这个:
应该学了for 语句了
  1. for Y in range(1,4):
  2.     for R in range(1,4):
  3.         if 8-Y-R<=6:    #明确Y和R后,直接用8减去,就可以得出G了。 且G小于<=6。
  4.             print("Yellow=",Y," Red=",R," Green=",8-Y-R)
复制代码


记得变量赋值后,系统下一轮循环,会继续沿用这个。。。

如果你还想用while实现。
用2组变量来实现

声明在while外面一组。

while里面的用另一组。

再或者:
使用3楼那个方案:
每次循环都先重新赋值一次。

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +2 收起 理由
BREAKFATE + 5 + 5 + 2

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-1 09:06:23 | 显示全部楼层
冬雪雪冬 发表于 2017-2-28 21:17
修改了一下你的程序。

谢谢 我明白了 。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-1 09:07:03 | 显示全部楼层
自然水 发表于 2017-2-28 22:26
亲,你自己盯着代码,用脑子循环几遍:

3 3 2

好的 谢谢了 我明白啦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-1 09:07:42 | 显示全部楼层
谢谢鱼C的小伙伴。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-1 10:25:49 | 显示全部楼层
red: 3 yellow: 3 green: 6
red: 3 yellow: 3 green: 5
red: 3 yellow: 3 green: 4
red: 3 yellow: 3 green: 3
red: 3 yellow: 3 green: 2
red: 3 yellow: 3 green: 1
red: 3 yellow: 3 green: 0
你第一层循环和第二层循环在第一次循环的时候,第三层循环直接执行完成,green的值已经是0了,这样第三层循环就不会再进行了,只需把相应的变量赋值放在本循环上一层就可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-3-1 14:34:52 | 显示全部楼层
小小fish 发表于 2017-3-1 10:25
red: 3 yellow: 3 green: 6
red: 3 yellow: 3 green: 5
red: 3 yellow: 3 green: 4

谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-25 17:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表