Part 1:while循环
所谓循环,就是不断的做一个事情。
while
循环的结构是这样子的:
while (<一个表达式>){
//如果表达式为真,执行这里
}
//否则,直接跳出到这里
举个例子:
int a = 10;
while (a > 0){
writeln(a);
a--;//这一句很重要,不然的话a一直都大于0,就一直不能跳出循环
//我们把这种永远不能跳出的循环叫死循环
}
writeln("End While");
你会看到输出:
10
9
8
7
6
5
4
3
2
1
End While
Part 2:用的更多的for循环
for
循环的语法格式是这样子的:
for(<定义控制循环次数的变量>;<循环条件>;<对于循环变量的操作>){
//和While一样
}
你会发现:for循环只是把whle循环的所有条件放在了一堆。
我们用for循环来改写上面的那个例子:
for(int a = 10;a > 0;a --){
writeln(a);
}
writeln("End While");
你会看到输出:
10
9
8
7
6
5
4
3
2
1
End While
当然,for
循环也会有死循环,双分号
是个基本的for
死循环:
for(;;){
//do
}
for
循环的任意一个条件都是可以省略的,前提是你知道你在干什么。
Part 3:do-while循环
do-while
看起来是这样子的:
do{
//不管是否为真,先把这里做一遍再说
}while(<循环控制表达式>);//循环一次过后再来看是否符合循环条件
这个时候,编者想让你自己试试用do-while
循环改写上面的程序。你发现了他的输出和while/for
的输出有什么区别?怎么改进?
Part 4:循环的嵌套
当然,循环也可以放在循环当中。下面的例子是经典的用两个循环输出乘法口诀表:
import std.stdio;
int main (string[] args){
for(int i=1; i<=9; i++){
for(int j=1; j <= i; j++)
write(i,"*",j,"=",i*j," ");
writeln();
}
return 0;
}
Oh糟糕,你看见了:当需要用大括号括起来的一组语句中,如果只有一条语句,可以省略大括号。
程序输出:
Part 5:break和continue
break
用于直接跳出当前循环,continue
表示忽视continue
下边的内容,直接开始第二次循环。
用法:
for(.....){
if(....)
break;//此时,直接跳出for循环
else if(....)//我希望你还记得上次我们谈到的else-if
continue;//此时,直接忽视下边的语句,开始下一次循环
}
课后作业:
1.写出一个程序,输出[2,n]的素数。
2.简述while、for和dowhile的区别。
3.尝试输出在三个不同的循环结束之后,他们控制循环的变量(假定为i
)有什么区别?
4.在第三题的基础上尝试一下:i++
换为++i
,输出又会发生什么变化?