C 如果必须在If语句中加上中断符,那么为什么我们需要在while操作中处理条件呢?
这其实只是一个一般性的问题 这是我最初写的C 如果必须在If语句中加上中断符,那么为什么我们需要在while操作中处理条件呢?,c,if-statement,do-while,C,If Statement,Do While,这其实只是一个一般性的问题 这是我最初写的 do { scanf("%i", &Carselect); if (Carselect == 1) { mass = 1100; velomax = 200; } else if (Carselect == 2) { mass = 1888;
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语句中加上中断符,那么为什么我们需要在while操作中处理条件呢
在机器层面或其他层面上,有什么东西需要这种看似微不足道的逻辑呢?编辑(随着问题标题的更改):
while/do while循环中的检查条件主要用于确定程序是留在while/do while循环中还是退出while/do while循环,而不是break语句
在以下情况下,通常使用break语句:
!=
)更改为非
平等性检查(=
)
这是因为您真正想要的是循环继续,只要
Carselect不是(1、2或3)
或者,您可以将or运算符(|
)更改为and运算符(&&&
),从而产生相同的逻辑:
while (Carselect != 1 && Carselect != 2 && Carselect != 3);
Carselect不是1,不是2,也不是3
在C中,break带您到包含块的}后面的语句,continue带您到后面的语句{包含块的。这两种方法在长块中都很有用,例如,如果出现错误条件,或者检测到一个更简单的输入,并且不需要对整个块进行所有处理,但您希望继续并获得下一个输入。严重吗?我是在放置and条件,而不是or条件?现在请告诉我是的,这很有效D查看标题。查看工作程序/示例中的有效代码。再次查看标题。为什么标题错误?嗯。可能修改了标题:“当条件不工作时——必须使用中断”。这样更好吗?你能更具体地批评一下吗,@user2864740?
break
和continue
通常被认为是不好的风格,因为流程可能很难遵循,从而产生意大利面代码。一些编程标准不允许这样做(除了select
之类的语句)。我的观点是,它们可以避免卷积代码,有时是合理的。但只有在某些时候。的确。(“不是1或不是2或不是3”总是正确的。)我倒是在想它。就像我在把它想象成一个或门,我想要1个或2个或3个,这就是我理想中想要写的东西。所以,出于思考,我不认为1个或2个或3个可以表示任何价值。“我想我明白了。”e可读性。恭敬地建议(1)根据对问题本身的评论,这是一个错误的while条件,(2)此处的循环用于捕获无效输入,而不是主循环。
while (Carselect != 1 && Carselect != 2 && Carselect != 3);