c - 找到硬编码号码
问题描述
我刚拿到我必须做的作业的成绩,它告诉我:在 hw2q1.c 中找到硬编码数字:
else if (number_letter < 6 && condition_r == 0) {
else if ((sum_value % 5) != 0 || number_letter > 4) {
if (number_letter < 6 && condition_r == 0) {
使用硬编码数字减少 10 分。我不完全理解“硬编码”定义以及为什么我写 if 的方式是错误的。
谢谢;) PS:我的代码工作正常,并且成功通过了所有测试
解决方案
硬编码数字是整数文字。它们也被称为幻数。
在您的代码中,它们是6, 0, 5, 4
.
那些阅读你的代码的人不会明白它们代表什么。几周后你可能也不记得了。
所以最好给这些数字起个名字。就像是:
const int number_letter_max = 6;
const int number_letter_min = 4;
const int condition_r_check = 0;
const int sum_value_divisible = 5;
然后你的代码变成:
else if (number_letter < number_letter_max && condition_r == condition_r_check) {
else if ((sum_value % sum_value_divisible ) != 0 || number_letter > number_letter_min ) {
if (number_letter < condition_r_check && condition_r == condition_r_check)
推荐阅读
- r - 使用函数创建列的数据表与单个条目上的函数给出不同的结果
- keras - 在自动编码器中使用跳过连接时出现图表断开错误
- javascript - POST 表单提交时出现“错误请求”
- ios - Firebase 侦听器返回 nil
- python - 如何让代码计算特定单词出现的次数?
- ios - 错误无效任务同上尝试添加 Swift 桥接头?
- python - 越界纳秒时间戳:日期为 1-01-01 00:00:00
- python - 当列表中的项目为无时,python索引超出范围
- swift - 创建一个 CMAudioClock
- mysql - MySQL - 从 SELECT 中插入 INTO,并在 Node Express 中传入值