gpt4 book ai didi

c - 切换 vs if ... else if ... else

转载 作者:太空狗 更新时间:2023-10-29 16:00:28 28 4
gpt4 key购买 nike

我有一个问题。我正在准备考试,我不知道如何回答这个问题。基本上我必须将指令 if...else if...else 更改为指令开关,以便程序的输出保持不变。

void main()
{
int x;
x = 1;
for (int i = 1; i < 10; ++i) {
if (i <= 3)
do {
x += i;
if (x >= 4)
break;
} while (i % 2 == 0);
else if ((i > 3) && (i < 5))
x += 2;
else
continue;
}
while (x > 0) {
printf(" x=%d ", x);
x -= 1;
}
system("pause");
}

我可以在 for 循环内进行切换吗?

最佳答案

当然可以。 for循环控制语句switch 的执行 block 一个语句。

鉴于i在1到9的范围内,可以替换if阻止

switch (i){
case 1: case 2: case 3:
// that replaces 'if (i <= 3)'
// ToDo - the code here
break; // to obviate follow-through.
case 4:
// that replaces 'if ((i > 3) && (i < 5))'
// ToDo - the code here
break;
default:
// that replaces 'else'
continue; // note that this is for the for loop, not the switch
}

请注意 if (x >= 4) break; 的行为此重构更改。

但是我不相信替换 ifswitch block 在这里做正确的事:边界i <= 3i >= 5switch 处理得不太自然;也许改变 i 的类型至 unsigned和处理case 0:明确地会在一定程度上缓解这种情况。

关于c - 切换 vs if ... else if ... else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51153305/

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