gpt4 book ai didi

c - 如果你必须在 if 语句中放置 break,为什么我们需要在 while 操作中为条件操心?

转载 作者:行者123 更新时间:2023-12-02 08:22:01 25 4
gpt4 key购买 nike

这真的只是一个一般性问题。

这是我写的

    do
{
scanf("%i", &Carselect);
if (Carselect == 1)
{
mass = 1100;
velomax = 200;
}
else if (Carselect == 2)
{
mass = 1888;
velomax = 415
}
else if (Carselect == 3)
{
mass = 18000;
velomax = 129;
}
else
{
printf("Error in input. Please enter 1, 2 or 3.\n");
}
}
while (Carselect != 1 || Carselect != 2 || Carselect != 3);

然后我陷入了循环。我在有效条件的语句中打断,这样我就可以出去了,就像这样

    do
{
scanf("%i", &Carselect);
if (Carselect == 1)
{
mass = 1100;
velomax = 200;
break;
}
else if (Carselect == 2)
{
mass = 1888;
velomax = 415;
break;
}
else if (Carselect == 3)
{
mass = 18000;
velomax = 129;
break;
}
else
{
printf("Error in input. Please enter 1, 2 or 3.\n");
}
}
while (Carselect != 1 || Carselect != 2 || Carselect != 3);

但我认为 while 的条件是重复条件,所以只要 Carselect 等于 1、2 或 3,它就会退出循环。如果您必须在 if 语句中放置 break,为什么我们需要为 while 操作中的条件烦恼?

在机器级别或其他方面,有什么需要这种看似微不足道的逻辑?

最佳答案

编辑(因为问题的标题已更改):

while/do-while 循环中的检查条件是主要检查以确定程序是留在还是退出 while/do-while 循环的条件 - 而不是 break 语句。

break 语句通常在以下情况下使用:

  1. 您想在 执行 block 中的每个语句或
  2. 之前退出 while/do-while block
  3. 当在您遍历整个循环迭代之前达到某些异常终止条件时或
  4. 您创建了一个无限循环并捕获了一个错误,这使您无法继续循环或
  5. 其他一些我可能不知道的情况......

本质上,break 语句通常用于终止 while/do-while block ,只要程序遵循(因为缺少更好的术语)“标准/主要”路径 在循环 block 中。

相比之下,while/do-while 循环中的条件用于当程序遵循“standard/main”时终止循环"循环 block 中的路径。

原文:

您应该将不等式检查 (!=) 更改为 NOT 等式检查 (==)。

while (!(Carselect == 1 || Carselect == 2 || Carselect == 3));

这是因为你真正想要的是循环持续到

the Carselect is not (1 or 2 or 3)

或者,您可以将 or 运算符 (||) 更改为 and 运算符 (&&),这会产生相同的逻辑:

while (Carselect != 1 && Carselect != 2 && Carselect != 3);

the Carselect is not 1 and not 2 and not 3

关于c - 如果你必须在 if 语句中放置 break,为什么我们需要在 while 操作中为条件操心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36231337/

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