JavaScript条件语句练习疑问:为何无需声明24小时制?
关于条件语句与时间/单位问题的解答
首先纠正你代码里的两个小细节:
- 第一个条件里的
&& < 12是语法错误,应该写成hour >= 6 && hour < 12,每个比较都要明确和变量hour做判断 - 视频答案里最后一行
console.log('Good evening!'少了一个闭合括号),运行时会报错
接下来逐个解答你的疑问:
1. 为什么不用声明24小时制?计算机怎么知道这是时间?
计算机完全不知道这是时间,它只认识你传入的数字。用24小时制是你作为开发者的逻辑约定:你提前决定hour变量存储的是0-23之间的数字,对应24小时制的小时数。比如你给hour赋值6,就代表6点;赋值18,就代表18点。计算机只做数字大小的比较,它不管这个数字是时间、温度还是别的什么——含义全靠你写代码时的规则来定义。
2. 温度单位场景是不是也不用声明?
是的,逻辑完全一样。比如你定义temp变量:
- 如果你约定它存摄氏度,那
temp > 30就代表“温度超过30摄氏度” - 如果你约定它存开尔文,那
temp > 30就代表“温度超过30开尔文”
计算机依然只处理数字,单位和含义是你赋予的,不需要专门声明给计算机,只要你自己(或者团队协作时)保持这个约定不混乱就行。
3. 是不是hour变量解决了这个问题?
不是变量本身的作用,是你用这个变量来承载时间相关的数字,并且按照时间的规则去使用它。hour只是个存储数字的容器,换个名字比如timeHour、h也一样,本质是你在代码逻辑里把这个数字和“小时”的概念绑定了,和变量名无关。
4. 为什么不需要嵌套循环?
首先你混淆了两个概念:循环是用来重复执行一段代码的(比如遍历列表、重复计算10次),而你的需求是做分支判断——一个小时只会属于“早上/下午/晚上”其中一种情况,用if-else if-else的平级分支就足够覆盖所有互斥的情况,根本没有需要重复执行的逻辑,所以完全用不到循环。哪怕是嵌套条件(if里套if),这里也不需要,平级分支已经足够清晰解决问题了。
内容的提问来源于stack exchange,提问作者Ariana
相关产品推荐
相关产品推荐

