想知道是否有一种方法可以比较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。
如果可能的话,试图将所有内容合而为一。
最佳答案
正如其他人指出的那样,中心条件是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
}