- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这真的只是一个一般性问题。
这是我写的
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 语句通常在以下情况下使用:
本质上,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/
我是一名优秀的程序员,十分优秀!