java的三种流程控制方式——循环结构
根据循环条件,重复性的执行某段代码。
有while、do…while、for三种循环语句。
注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。
3 循环语句
根据循环条件,重复性的执行某段代码。
有while、do…while、for三种循环语句。
注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。
循环结构
在某些条件满足的情况下,反复执行特定代码的功能
循环语句分类
for 循环
while 循环
do-while 循环
循环语句的四个组成部分
3.1 循环结构之for循环
语法格式
for (①初始化部分; ②循环条件部分; ④迭代部分){
③循环体部分;
}
执行过程: ①-②-③-④-②-③-④-②-③-④-…-②
说明:
②循环条件部分为boolean类型表达式,当值为false时,退出循环
①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔
④可以有多个变量更新,用逗号分隔
例4:
/**
打印1~100之间 6的倍数的个数
*/
public class test{
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<=100;i++){
if(i % 6== 0){
sum++;
}
}
System.out.println("1~100之间6的倍数一共有"+sum+"个");
}
}
例5:
/*
*计算0---100之间的所有整数的和
*/
public class test {
public static void main(String[] args) {
int sum = 0;
for(int i = 0;i <= 100 ;i++){
sum += i;
}
System.out.println(sum);
}
}
3.2 循环结构之while循环
语法格式
①初始化部分
while(②循环条件部分){
③循环体部分;
④迭代部分;
}
执行过程: ①-②-③-④-②-③-④-②-③-④-…-②
说明:
注意不要忘记声明④迭代部分。否则,循环将不能结束,变成死循环。
for循环和while循环可以相互转换
例6:
/**
山上有一口缸可以装50升水,
现在有15升水。老和尚叫小和尚下山挑水,
每次可以挑5升。
问:小和尚要挑几次水才可以把水缸挑满?
*/
public class test{
public static void main(String[] args) {
int water = 15;
int l = 0;
while(water<50){
water += 5;
l++;
}
System.out.println("小和尚要挑" + l + "次水才可以把水缸挑满");
}
}
例7:
/*
*题目:输出1--100 之间 非5的倍数
*/
public class test {
public static void main(String[] args)
{
int i= 1;
while(i < 100){
if(i % 5 == 0){
i++;
continue;
}else{
System.out.print(i++);
System.out.print(" ");
}
}
}
}
for 循环和while 区别
1 从循环变量的生命周期 for仅限于其整个循环 while范围更大
2 for用于能够明确知道循环界限的循环 while用于循环界限奴明确的
通常情况两者可以进行转换
3while循环至少执行一次,而for循环不一定要执行。
3.4 循环结构之 do…while循环
语法格式:
①初始化部分;
do{
③循环体部分
④迭代部分
}while(②循环条件部分);
执行过程: ①-③-④-②-③-④-②-③-④-…②
说明: do-while循环至少执行一次循环体。
例7:
/*
*模拟系统登录 让用户输入用户名
*如果用户输入的用户名为admin 则输出 登录成功
*如果输入的不是admin 则提示用户输入不正确 请重新输入
*最多允许尝试3次
*/
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int inputCount = 0 ;
do{
String username = sc.next();
if("admin".equals(username)){
System.out.println("登录成功");
break;
}else{
inputCount++;
System.out.println("用户名输入不正确,请重新输入:");
}
}while(inputCount < 3 );
if(inputCount == 3){
System.out.println("输入以达到最大次数,请明天再来尝试:");
}
}
}
3.5 循环结构之嵌套循环
- 将一个循环放在另一个循环体内,就形成了嵌套循环。其中, for ,while ,do…while均可以作为外层循环或内层循环。
实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的
循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开 始下一次的循环。
设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。
例子:打印九九乘法表
public class ForDemo
{
/*
输出九九乘法表
*/
public static void main(String[] args)
{
l1:for(int i = 1 ; i < 10 ;i++){//外层循环 控制的行
for(int j = 1 ; j <= i; j++){// 内层循环 控制每一行列
System.out.print(i +" * " + j +" = " + i * j +" ");
if( j == 5){
break l1;//结束指定标记的循环
}
}
System.out.println();
}
}
}
结果: