鱼C论坛

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

[已解决]关于break和while循环的疑问

[复制链接]
发表于 2018-4-29 19:41:54 | 显示全部楼层 |阅读模式

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

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

x
break.png
004讲测试题.png
(1)第一个图中框出来的else是我自己加的,小甲鱼上课时没有这个else。我觉得此处,按前几节课所学这里应该加这个else才对啊,没有else逻辑
不太严谨
(2)第二个图中为什么一定要while"C"才行,单独的C就不行呢(会报错)。C看做是变量,也是非0是true啊
(3)第二个图中i=i-1能不能放在print上面,好像意思没改变吧,一直没太明白写代码这个顺序
最佳答案
2018-4-29 21:13:40
leftjay 发表于 2018-4-29 20:56
C的确没有定义,但它自己就是个变量,非0非假非空,为什么while循环用不了?第二个图循环里没有用到i是啥 ...


用没用到i的话 比如
  1. x = ['a','s','d','f']

  2. i = 3
  3. while i:
  4.         i -=1
  5.         print(x[i])#这里就用到了i
  6.         
复制代码

在这里面就用到了i,这时候i的顺序就会影响结果了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-29 19:51:27 | 显示全部楼层
第二个图,单独的c没有定义是什么东西,程序不知道你说的c是什么,'c'则表示一个字符
第三个图,在这里的确是无所谓的,因为循环里面没有用得到i,如果循环里面有用到i的话那顺序就有用了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-29 20:23:46 From FishC Mobile | 显示全部楼层
1 代码逻辑加不加else都一样,所以可不加
2 如果是一个变量,因为前面没有对这个变量赋值,我如何知道它是否非零呢?
3 可以放到前面,只要代码逻辑符合自己的逻辑,放哪里都行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-4-29 20:56:00 | 显示全部楼层
一鱼 发表于 2018-4-29 19:51
第二个图,单独的c没有定义是什么东西,程序不知道你说的c是什么,'c'则表示一个字符
第三个图,在这里的 ...

C的确没有定义,但它自己就是个变量,非0非假非空,为什么while循环用不了?第二个图循环里没有用到i是啥意思啊?用了i=i-1的嘛,是在while命令里面的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-29 21:10:41 | 显示全部楼层
leftjay 发表于 2018-4-29 20:56
C的确没有定义,但它自己就是个变量,非0非假非空,为什么while循环用不了?第二个图循环里没有用到i是啥 ...

这。。。程序是严谨的,并不是玄学,不是那么想当然的 不是你说他是变量他就是变量,就算是变量也要代表一个东西吧,你不先定义他,对于程序来说他是不存在的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-29 21:13:40 | 显示全部楼层    本楼为最佳答案   
leftjay 发表于 2018-4-29 20:56
C的确没有定义,但它自己就是个变量,非0非假非空,为什么while循环用不了?第二个图循环里没有用到i是啥 ...


用没用到i的话 比如
  1. x = ['a','s','d','f']

  2. i = 3
  3. while i:
  4.         i -=1
  5.         print(x[i])#这里就用到了i
  6.         
复制代码

在这里面就用到了i,这时候i的顺序就会影响结果了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-29 22:07:16 | 显示全部楼层
BngThea 发表于 2018-4-29 20:23
1 代码逻辑加不加else都一样,所以可不加
2 如果是一个变量,因为前面没有对这个变量赋值,我如何知道它是 ...

之前的课,这种情况都特意说加else,else的专属用途不就在这吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-29 23:10:37 From FishC Mobile | 显示全部楼层
leftjay 发表于 2018-4-29 22:07
之前的课,这种情况都特意说加else,else的专属用途不就在这吗

我是说逻辑不受影响即可
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-29 23:36:22 | 显示全部楼层
一鱼 发表于 2018-4-29 21:13
用没用到i的话 比如

在这里面就用到了i,这时候i的顺序就会影响结果了

恩恩,print里的i出现了,但是这里i=i-1写前面,表示先赋值?这样print里i出现才不会报错吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-1 12:24:19 | 显示全部楼层
leftjay 发表于 2018-4-29 23:36
恩恩,print里的i出现了,但是这里i=i-1写前面,表示先赋值?这样print里i出现才不会报错吗

不是i的赋值问题,赋值在循环之前已经有了,就是i=3那个,这里的i = i-1影响的是在进行print的时候的i的取值,他决定了最后的输出结果,你可以试试i=i-1放在print前和后的输出结果有什么不一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-11 01:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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