输入小写英文,一直打印?

输入小写英文,一直打印?

http://img1.sycdn.imooc.com//climg/5af9b4b0000143bb10000750.jpg
http://img1.sycdn.imooc.com//climg/5af9b4af000199af10000750.jpg
老师好,请问一下,请选择座位排数,原本输入int型,但不小心输入小写英文,结果控制台一直循环打印图中的语句,本来打印一次返回就行了,但它一直循环打印到程序奔溃。有什么办法让纸打印一次吗?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

①从代码上看,selectRow方法中,定义的整型变量row,不赋予初始值的话,默认是0,那么条件判断if语句就一直满足,就会出现循环现象,包括后面的col也是一样的道理。

②当输入座位号不正确的时候只需要提示用户重新输入座位号,在这里又重新调用了selectRow方法,那就又从输入排数开始了。你可以将选择座位号这部分代码放在一个方法里面,通过调用方法来执行。

祝学习愉快~

  • 幕布斯2332854 提问者 #1
    输入0只打印一次,输入超出条件范围的int型数字都只打印一次,输入英文就循环打印了
    2018-05-15 20:08:41
  • imoocLovers 回复 提问者 幕布斯2332854 #2
    scanf输入一个int型并成功时,会返回1,而遇到了字符时,输入失败。只有当输入整型正确,scanf返回1时,才会继续执行循环中的其它语句,所以在这里输入非整型的数据就会出现死循环的现象。而读入字符是使用getchar()获取
    2018-05-16 10:01:17
提问者 幕布斯2332854 2018-05-15 13:37:37

好嘞 谢谢啦

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
iOS入门:基础语法与常用控件
  • 参与学习       1337    人
  • 提交作业       712    份
  • 解答问题       1878    个

很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师