鱼C论坛

 找回密码
 立即注册
查看: 4541|回复: 13

[已解决]break跳不出循环,求大家帮助!

[复制链接]
发表于 2017-3-31 21:11:31 | 显示全部楼层 |阅读模式

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

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

x
如图所示,我用的3.6.1,这个代码在朋友那里试了下可以跳出来,我这里就是跳不出来。。求解惑~谢啦!
最佳答案
2017-3-31 21:27:41
input返回的是字符串类型而不是int类型
要么把if语句修改成 if temp == '8'或者temp = int(input('type'))
QQ图片20170331211019.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-31 21:19:58 | 显示全部楼层
同志
删掉最后一行
最后一行在while循环里,会停不下来的
或者在最后一行代码后面再加上
  1. if temp == 8:
  2.     break
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-31 21:22:29 | 显示全部楼层
其实就是改成
  1. temp = input('type')
  2. while True:
  3.     if temp == 8:
  4.         break
  5.     temp = input('type')
  6.         if temp == 8:
  7.             break
复制代码

然而没有什么意义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-31 21:27:41 | 显示全部楼层    本楼为最佳答案   
input返回的是字符串类型而不是int类型
要么把if语句修改成 if temp == '8'或者temp = int(input('type'))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-31 21:27:59 | 显示全部楼层
新手·ing 发表于 2017-3-31 21:19
同志
删掉最后一行
最后一行在while循环里,会停不下来的

谢谢回答,可是break不是跳出while循环了嘛?你看,我这样改还是不行、、

while True:
    temp = input('type')
    if temp == 8:
        break
print('over')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-31 21:30:58 | 显示全部楼层
  1. while True:
  2.     temp = input('type')
  3.     if temp == 8:
  4.         break
  5.     break
  6. print('over')
复制代码

缩进的问题~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-31 21:31:29 | 显示全部楼层
lumber2388779 发表于 2017-3-31 21:27
input返回的是字符串类型而不是int类型
要么把if语句修改成 if temp == '8'或者temp = int(input('type'))

谢谢啊。你的做法是对的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-31 21:32:15 | 显示全部楼层

谢谢啦,应该是int和字符串的问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-31 21:32:46 | 显示全部楼层
samohyes 发表于 2017-3-31 21:32
谢谢啦,应该是int和字符串的问题。

尴尬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-31 22:07:09 | 显示全部楼层

没事你还年轻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-31 22:08:24 | 显示全部楼层
正如 lumber2388779 所说的,input得到的是字符串。在你朋友电脑可正常运行,是因为他的python是2.x版本,python2的input返回的是数字,而不是字符串。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-1 00:19:01 | 显示全部楼层
- -

input接受的类型是字符串。

先转为int
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-1 08:26:24 | 显示全部楼层
input返回的是字符串类型,字符串类型无法跟整型进行比较,那么if temp==8本身就是有错误的地方,这个条件是不成立的。所以当你输入8的时候,其实是字符串'8',那么'8'是不等于8的,所以if条件不成立,自然就不会执行break语句了,也就一直处于循环中了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-1 17:58:35 | 显示全部楼层

但是好愚蠢的错误啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 08:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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