[英]More than 2 condition in a for loop?
想知道是否有办法在for循环中比较3-4个条件? 有没有办法只使用for循环或我需要在循环中添加一个if语句来控制不打印91 - 96?
我已经尝试添加一个初始条件,围绕它们和它们周围的括号,但似乎无法将它打印到90以上并在97处拾取。
for (int cntr = 65; cntr >= 65 && cntr < 91 || cntr > 96 && cntr < 122; cntr++)
for (int cntr = 65; cntr < 91 || cntr > 96 && cntr < 122; cntr++)
尝试打印65到122的ASCII字符而不显示90到96.如果可能的话,尝试将其全部放在一个for循环中。
好的,所以修复它是这样的:
for (int cntr = 65; cntr < 123; cntr++)
{
if(!(cntr >= 91 && cntr <= 96))
cout << "#" << cntr << " = ASCII Char: " << char(cntr) << endl;
}
猜猜这是解决这个问题的最佳方法。 再次感谢你
正如其他人所指出的那样,中心条件是break
状况。 如果您想要在一个循环内完成所有操作,则在达到cntr == 91
时不希望破坏。
这是一种在一个循环中巧妙地完成它的方法(C ++风格):
for (char cntr = 65; cntr < 123; cntr++)
{
if ( cntr == 91 ) // skips the parts that you don't want
cntr = 97;
std::cout << cntr << std::endl;
}
更一般地说,有时候你可能在一个循环中有多个真正的中断条件,但是最好将它们中的一些/大部分保留在for循环的第一行之外,即。 for ( ... ; ... ; ... )
,因为它是不必要的,而且通常更难阅读。 你可以在循环开始时写一个中断条件(即第2行):
for ( i = 0; break_condition_1; ++i)
{
if ( break_condition_2 || break_condition_3 )
break;
// loop code
}
上面/下面的答案很好地解释了如何使用多个for循环条件。
但是说你正在做这样的事情(正如Elliott Smith所说):
for ( i = 0; break_condition_1; ++i)
{
if ( break_condition_2 || break_condition_3 )
break;
// loop code
}
为清晰起见,最好简单地执行此操作:
int i = 0;
while (break_condition_1 || break_condition_2 || break_condition_3){
i++;
}
for循环和while循环之间没有重大区别,除了循环在某些情况下编写更整洁的事实。 在你的情况下,我会建议while循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.