gpt4 book ai didi

python - 用于显示 "One"值的 For 循环与 While 循环 (CS50)

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:42 24 4
gpt4 key购买 nike

观看 CS50 讲座的第 2 周(此处:https://video.cs50.net/2016/fall/lectures/2?t=84m33s),他通过在字符串的字符上运行 while 循环来重新实现 strlen,其中这个循环(编辑了其他代码):

string s = get_string();
int n = 0;
while (s[n] != '\0')
{
n++;
}
printf("%i",n);

我的问题是:上面的内容可以用for循环来表述吗?

我试图创建一个,但由于 for 循环的格式化方式,它似乎在每次迭代后强制输出,这与允许的 while 循环不同对于循环的一个输出,一旦满足特定条件。

我很好奇 for 循环是否可以在这种情况下实现相同的“一次性、条件”输出。如果我没记错的话,while 是 C lang 独有的,而其他语言(例如 Python)专门有 for 循环(如果我错了请告诉我!)。

最佳答案

同样可以使用 for 循环编写。例如

string s = get_string();
int n = 0;
for ( ; s[n] != '\0'; n++ );
printf("%i",n);

然而,这个带有空子语句的 for 循环可能会使代码的读者感到困惑,即使它是这样写的

for ( ; s[n] != '\0'; n++ ) /* empty body */;

for ( ; s[n] != '\0'; n++ ) { / *empty body */ }

通常同一件事情可以有多种不同的方式来完成。您应该选择更具表现力的结构。对于此任务,最好使用 while 循环。

考虑到对于变量 n 使用类型 size_t 而不是类型 int 会更正确。

例如

string s = get_string();
size_t n = 0;
for ( ; s[n] != '\0'; n++ );
printf("%zu",n);

关于python - 用于显示 "One"值的 For 循环与 While 循环 (CS50),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43655241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com