目录
1.for语句的特例
?2.总结while()和for()的风格
1.for语句的特例
? ? ? ? 需要强调的是,如果在for语句中没有循环条件,则认为表达式始终为真。for语句常用于“遍历”,请看一下经典for语句特例。
例1.1
for(;;)
{
循环体语句;
}
或者来个更变态的
for(;;);
例1.1 for(;;)相当于while(1)无限循环。
例1.2
for(;i<100;i++)
;
变形1
#include"stdio.h"
int main() {
int i = 1;
for (; i < 100 ;) {
printf(" % d", i);
i++;
}
}
变形2(自行包含头文件)
int main() {
int i = 1;
for (; i < 100 ; i++) {
printf(" % d", i);
}
}
变形3
int main() {
int i = 1;
for (; i < 100 ;) {
i++;
printf(" % d", i);
}
}
变形4
int main() {
int i = 1;
for (; i < 100 ; )
printf(" % d", i);
i++;
}
?例1.2 变形1和变形2答案一致,仔细想想为什么,又为什么和变形3的不一致?
以下是变形4的答案,无限出现1。为什么?这说明跟到for语句后面如果只有一条语句(当然;空语句也算),可以不加花括号{ }。但超过两条及以上语句却不加花括号,for语句则认定跟到它最近的一条语句为for语句的循环体。
接着重新看一下例1.2变形1
例1.2
变形1
#include"stdio.h"
int main() {
int i = 1;
for (; i < 100 ;) {
printf(" % d", i);
i++;
}
}
终极变形:
int main(){
int i = 1;
while(i < 100){
printf(" % d", i);
i++;
}
}
运行结果不出所料,两者一致:
2.总结while()和for()的风格
for语句的简写风格
for(expression1 ; expression2 ; expression3)
statement
改为while语句的简写风格
expression1;
while(expression2){
statement
expression3;
}
statement循环体不知道包含几条语句,所以statement
后面我没有加上分号;
?
|