gpt4 book ai didi

C语言,解释一下这段代码

转载 作者:行者123 更新时间:2023-11-30 21:42:53 24 4
gpt4 key购买 nike

#include <stdio.h>

int main()
{
int i;

for (i = 1; i <= 4; i++) {

switch (i % 3) {

case 0: printf("zero, ");
case 1: printf("one, ");
case 2: printf("two, ");
default: printf("what? ");

}

puts(" ");

}

return 0;
}

switch(i%3) 是什么意思?和puts(" ")意思是?我不明白它们是如何工作的以及它们的含义。

还解释一下为什么输出是:

一,二,什么?
二、什么?
零,一,二,什么?
一、二、什么?

最佳答案

特定输出的原因。由于您没有 break; 作为 switch 条件,因此您会遇到找到的第一个匹配项中的所有 switch case

来自this教程,

When the variable being switched on is equal to a case, the statements following that case will execute until a break statement is reached.

If no break appears, the flow of control will fall through to subsequent cases until a break is reached.

switch (i % 3) {
case 0: printf("zero, "); // <= No break so once this get match all the below will get execute. (Till a break is reached)
case 1: printf("one, ");
case 2: printf("two, ");
default: printf("what? ");
}

因此,在您的情况下,对于 i=0i=4,会发生以下情况,

i=1时,您得到i%3将与case 1匹配,输出将为一,二,什么?

i=2时,你得到i%3将与case 2匹配并且输出将是两个,什么?

i=3时,你得到i%3将与case 0匹配并且输出将为零,一,二,什么?

i=4时,您得到i%3将与case 1匹配,输出将为一,二,什么?

请注意,default 是在没有满足任何情况时要满足的情况。但在你的情况下,由于你没有 break ,这也会被执行并得到 what? 的结果。

puts() 的作用是,简单地将一个字符串放入标准输出。在你的情况下, put("") 将放置一个空格。请注意,puts() 将在末尾添加一个换行符。

关于C语言,解释一下这段代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28890797/

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