c - 找到硬编码号码

标签 c if-statement

我刚拿到作业的成绩,它告诉我: 在 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:我的代码运行良好,并且成功通过了所有测试

最佳答案

硬编码数字是整数文字。它们也被称为 magic numbers .
在您的代码中,它们是 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) 

关于c - 找到硬编码号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53652217/

相关文章:

调用方法C

c - 如何访问已知内存地址的内容?

c - 用指针 C 循环

linux - 如何在sh中执行带有 "and"的if语句

c - 使用指针进行类型转换

c - 使用 MPI_Cart_create、MPICH 获取 NULL 通信器

java - 无法检查字符串值

for-loop - 如何使用 awk 和 grep 计算两个文件的平均值

javascript - 触摸事件jQuery函数详解

arrays - 如果 PowerShell 中不包含任何数组值,则写出字符串