使用条件判断语句在循环体内部改变循环条件
在 C 语言中,while循环的一般形式是while(condition),只要condition为真,循环就会一直执行。要结束循环,可以在循环体内部通过改变condition所依赖的变量的值来使condition变为假。例如:int i = 0;
while (i < 10) {
printf("%d ", i);
i++; // 每次循环i的值增加1,当i的值达到10时,循环条件i < 10就变为假,循环结束
}
在这个例子中,while循环的条件是i < 10。在循环体内部,每次循环都会执行i++,使i的值增加。当i的值增加到 10 时,循环条件i < 10就不再满足,循环结束。
使用break语句
break语句用于立即跳出当前循环(while、for、do - while)或者switch语句。在while循环中,当执行到break语句时,循环会立即终止,程序流程会跳转到循环体后面的语句继续执行。例如:int num;
while (1) { // 这里的循环条件是恒为真,是一个无限循环
printf("请输入一个负数来结束循环: ");
scanf("%d", &num);
if (num < 0) {
break; // 当输入的数是负数时,执行break语句,结束循环
}
}
printf("循环结束。");
在这个例子中,while循环的条件是1,这是一个永远为真的条件,所以如果没有break语句,循环会一直执行下去。在循环体内部,程序会提示用户输入一个数,然后判断这个数是否为负数。如果是负数,就执行break语句,结束循环,然后执行循环体后面的printf("循环结束。");语句。
使用goto语句(不推荐)
goto语句可以无条件地跳转到程序中的指定标签处。虽然可以用它来结束while循环,但这种方式会使程序的结构变得复杂,可读性变差,所以一般不推荐使用。例如:
int count = 0;
while (1) {
count++;
if (count > 5) {
goto end_loop; // 当count大于5时,跳转到end_loop标签处,结束循环
}
printf("%d ", count);
}
end_loop:
printf("循环结束。");
在这个例子中,while循环是一个无限循环。在循环体内部,每次循环都会使count的值增加,当count的值大于 5 时,执行goto end_loop语句,程序会跳转到end_loop:标签处,从而结束循环,然后执行标签后面的printf("循环结束。");语句。不过,由于goto语句会使程序的逻辑结构混乱,容易导致错误,所以在实际编程中应该谨慎使用。