|
发表于 2021-12-5 20:21:51
|
显示全部楼层
这个问题的关键点有两个
1、if语句中的ch < '0' || ch > '9'是什么意思
2、continue的作用
第一个问题if语句中的逻辑判断ch < '0' || ch > '9'是什么意思,它其实是用char型变量ch的ascii码值与字符'0'和字符'9'的ascii码值作比较,当ch的ascii码值小于'0'的ascii码值,或者大于'9'的ascii码值时,逻辑判断为真,否则为假。所以,意思就是当你输入的字符ascii码不是'0'到'9'的ascii码之间时,为真,否则为假,
https://baike.baidu.com/item/ASCII/309296?fr=aladdin
上面的百度百科中可以看到字符'0'的ascii码是48,'9'的ascii码是57,可以看到从48-57正好是字符'0','1'....'9',所以,上面的判断语句意思是当你输入的不是数字时为真,是数字时为假
第二个问题,continue的作用,continue语句的作用是,跳过当前循环中剩下的部分,直接开始下一次循环,用你贴的这一段语句为例
根据第一个问题的讨论我们知道,当输入的不是数字时,会执行if语句后面的continue,这时将直接跳过所有while循环中continue后面的语句(也就是语句A)。当你输入数字时,if语句后面的continue由于条件判断为假而不会被直接,于是就会接着执行下面的语句A
|
|