DO..WHILE
DO..WHILE 非常类似于 WHILE 循环, 只是它在每次循环结束时检查表达式是否为真,而不是在循环开始时。 它和严格的WHILE循环的主要区别是DO..WHILE的第一次循环肯定要执行(真值表达式仅在循环结束时检查), 而不必执行严格的WHILE循环(每次循环开始时就检查真值表达式, 如果在开始时就为FALSE, 循环会立即终止执行).
DO..WHILE循环只有一种形式:
int i=0;
do{ printf("%d",i);
}whlie(i>0);
上面循环只执行一次, 因为第一次循环后,当检查真值表达式时, 它算出来是 FALSE (I 不大于 0)循环执行终止。
老的 C 用户可能熟悉DO..WHILE循环的另一种用法:通过DO..WHILE(0)封装它们,并结合使用BREAK语句,可以在代码块中间结束执行。下面代码是个示范:
do {
if (I < 5) {
print ("I is not big enough\n");
break;
}
I *=factor;
if (I < minimum_limit) {
break;
}
printf("I is ok");
…process i…
} while(0);
如果你不能马上或者全部的理解这种方法也不用担心。你完全可以编写出程序,甚至强大的程序都不用这种用法。
ELSE
通常你希望满足特定条件时执行一条语句,不满足条件时执行另一条语句。
ELSE就是用来做这个的。ELSE 扩展了IF语句,在IF语句表达式为FALSE时执行另一条语句。
例如, 下面程序执行如果 a 大于 b则显示 ’a is bigger than b’,否则显示 ’a is NOT bigger than b’:
if (a>b) {
print("a is bigger than b");
} else {
print("a is NOT bigger than b");
}
ELSE语句仅当IF表达式为FALSE且这里没有任何的 ELSEIF 表达式时执行---该语句也在IF表达式为FALSE 时执行。