是否想知道是否可以在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。 试图尽可能地将其全部整合到一个循环中。
答案 0 :(得分:1)
好,这样修复它:
for (int cntr = 65; cntr < 123; cntr++)
{
if(!(cntr >= 91 && cntr <= 96))
cout << "#" << cntr << " = ASCII Char: " << char(cntr) << endl;
}
猜猜这是目前解决此问题的最佳方法。 再次谢谢你
答案 1 :(得分:0)
正如其他人指出的那样,中心条件是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
}
答案 2 :(得分:0)
上面/下面的答案很好地说明了如何处理多个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循环之间没有主要区别,除了for循环在某些情况下更易于编写的事实。对于您的情况,我建议使用while循环。