You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 19:50:21