想知道是否有一种方法可以比较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
}

09-11 17:32