哪段代码设计更简洁优秀?两段代码的执行结果是否一致?
哪段代码的设计更简洁、更优秀?
先给你明确结论:示例B的代码设计更简洁、更优秀,而且两段代码的最终功能完全一致——都是通过循环校验,确保用户输入一个正整数后才退出循环。
具体分析下两者的差异:
- 示例A把“输出提示语”和“获取输入”拆成了两步:先调用
printf打印提示,再调用get_int()拿输入;而示例B直接利用了cs50库中get_int()支持直接传入提示字符串的特性,把提示和输入合并成了一步操作,砍掉了冗余的printf调用,代码行数更少,逻辑更紧凑。 - 从可读性角度看,示例B的代码意图更聚焦:所有和“获取有效输入”相关的操作都集中在一行,不需要分散注意力去看单独的输出语句,代码的核心逻辑一眼就能看清。
- 两段代码的核心校验逻辑(
do-while循环判断input <= 0)完全相同,最终达成的效果没有任何区别。
示例A代码:
#include <stdio.h> #include <cs50.h> int main(void) { int input; do { printf("Enter a positive number: \n"); input = get_int(); } while (input <= 0); }
示例B代码:
#include <stdio.h> #include <cs50.h> int main(void) { int input; do { input = get_int("Please enter a positive number: "); } while (input <= 0); }
(注:你提供的示例B里提示文本是"Pleas...",应该是笔误,这里修正为完整的提示语,不影响核心逻辑判断)
内容的提问来源于stack exchange,提问作者TotalNewb
相关产品推荐
相关产品推荐

