for循环
for 循环在第一次反复之前要进行初始化。随后,它会进行条件测试,而且在每一次反复的时候,进行某种形式的“步进”( Stepping)。 for 循环的形式如下:
for(初始表达式;布尔表达式;步进){
循环体
}
注:当执行语句只有一句时,可以省略“{ }”
无论初始表达式,布尔表达式,还是步进,都可以置空。每次反复前,都要测试一下布尔表达式。若获得的结果是 true,就会继续执行循环体语句;判断结果为false,则跳出for循环,执行循环后面的那行代码。
例如:
public static void main(String[] args){
for(int i = 1;i < 10;i++){
System.out.print(i); //循环体
}
}
System.out,println(" 我爱学习")
// 输出结果为:123456789 我爱学习
注:for 循环存在一个死循环,其表达形式为:
for(;;){
执行语句;
}
while循环
while循环在每一次执行的时候,都会进行判断,然后再执行语句。while循环表达形式如下:
while(布尔表达式){
循环体;
步长;
}
在循环刚开始时,会计算一次“布尔表达式”的值。而对于后来每一次额外的循环,都会在开始前重新计算一次。
下面这个简单的例子可产生随机数,直到符合特定的条件为止:
public static void main(String[] args){
double i = 0.0;
while(i < 0.99d){
i = Math.random;
System.out.println(i);
i += 0.1;
}
}
// 输出结果是小于0.99的小数
注:在while 循环中有一个特殊的循环——死循环,也就是说布尔表达式返回值永远都是 true。其表达形式如下:
while(true){
循环体
}
do…while循环
while 和 do-while 唯一的区别就是 do-while 肯定会至少执行一次;也就说,至少会将其中的语句“过一遍” —— 即便表达式第一次便计算为 false。而在 while 循环结构中,若条件第一次就为 false,那么其中的语句根本不会执行。在实际应用中, while 比 do-while 更常用一些。其表达形式如下:
do
循环体;
while(布尔表达式)
break和continue
在任何循环语句的主体部分,亦可用 break 和 continue 控制循环的流程。其中, break 用于强行退出循环,不执行循环中剩余的语句。而 continue 则停止执行当前的反复,然后退回循环起始和,开始新的反复。
下面这个程序向大家展示了 break 和 continue 在 for 和 while 循环中的例子:
public static void main(String[] args){
// for循环
for(int i = 0; i < 100; i++) {
if(i == 74) break; // 跳出整个循环
if(i % 9 != 0) continue; // 继续进行下一次的循环
System.out.println(i);
}
//while循环
int i = 0;
while(true) {
i++;
int j = i * 27;
if(j == 1269) break; // 跳出整个循环
if(i % 10 != 0) continue; // 继续进行下一次循环
System.out.println(i);
}
}
if…else…
if-else 语句或许是控制程序流程最基本的形式。其中的 else 是可选的,所以可按下述三种形式来使用 if:
if(布尔表达式){
执行语句;
}
或
if(布尔表达式){
执行语句;
}else{
执行语句
}
亦或
if(布尔表达式){
执行语句;
}else if{
执行语句;
}else{
执行语句;
}
作为 if-else 的一个例子,下面这个代码可告诉我们猜测的一个数字位于目标数字之上、之下还是相等:
public static void main(String[] args){
Scanner sc = new Scanner(System.in); // 构造一个新对象,用于键盘输入
System.out.print("请输入一个整数");//提示人们输入
int i = sc.nextInt();//接收键盘输入的数字
if(i > 90){
System.out.println("非常棒");
}else if(i > 60 && i <= 90){
System.out.println("还需要继续努力");
}else{
System.out.println("滚去学习");
}
}
switch
switch( 开关)有时也被划分为一种“选择语句”。根据一个整数表达式的值, switch 语句可从一系列代码选出一段执行。它的格式如下:
switch(整数选择因子) {
case 整数值 1 :
执行语句;
break;
case 整数值 2 :
执行语句;
break;
case 整数值 3 :
执行语句;
break;
case 整数值 4 :
执行语句;
break;
case 整数值 5 :
执行语句;
break;
}
通过下面这个例子可以判断我们输入的数字,然后返回对应的含义。我们假设1:周一;2:周二;3:周三;4:周四:5:周五;6:周六;7:周日
public static void main(String[] args){
Scanner sc = new Sanner(System.in);
int i = sc.nextInt();
switch(i)
case 1:
System.out.println("周一");
break;
case 2:
System.out.println("周二");
break;
case 3:
System.out.println("周三");
break;
case 4:
System.out.println("周四");
break;
case 5:
System.out.println("周五");
break;
case 6:
System.out.println("周六");
break;
case 7:
System.out.println("周日");
break;
}
小结
- for 和 while 的使用建议:一般当确定循环次数时,我们使用 for 循环;反之,当不确定循环次数时,使用 while 循环
- if…else 和 switch 的使用建议:要进行判断,使用 if…else ;当需要返回一个所对应的值,使用 switch
练习题
- 判断一个数是否为素数
- 打印2 - 100之间的所有素数
- 打印99乘法表
- 猜拳游戏