浅析java — 循环结构(for、while、do...while)

for 循环

格式:
for (初始化语句;判断条件语句;循环控制语句){
                      ~~~~~~~~~~~~~~~~~~~~~ 循环体语句;
}
若判断条件语句为 true ,则循环持续进行,直到判断条件语句变为 false 后,该循环结束
执行流程:
初始化语句 - (判断条件语句 - 循环体语句 - 循环控制语句),然后就会循环执行前面括号中的三条语句,要记住,for循环中初始化语句只执行一次,且初始化语句中的变量只在for循环内部有效,循环执行完成后该变量消失

//代码演示
public class ForDemo{
	public static void main(String[] args){
		//打印 1-10
		for(int i = 1;i <= 10;i++){
			System.out.println(i);
		}
		
		//求 1-10 之和
		int sum = 0;
		for(int i = 1;i <= 10;i++){
			sum += i;
		}
		System.out.println(sum);//55
	}
}
  • 注意:for循环中不只是可以定义int类型的值,例如要打印英文大小写字母,可以直接在for循环中定义初始化变量,char i = ‘A’ ; i <= ‘Z’ ; i++

while 循环

格式:
初始化语句;
while (判断条件语句){
         ~~~~~~~~ 循环体语句;
         ~~~~~~~~ 循环控制语句;
}
若判断条件语句为 true ,则循环持续执行,直到判断条件语句变为 false 后,该循环结束
执行流程:
初始化语句 - (判断条件语句 - 循环体语句 - 循环控制语句),然后就会循环执行前面括号中的三条语句,与for循环不同的是,虽然 while 循环中初始化语句同样只执行一次,但初始化语句中的变量是在整个类中有效,属于成员变量,循环执行完成后该变量不会消失

//代码演示
public class WhileDemo{
	public static void main(String[] args){
		//同for循环案例相同
		//打印 1-10
		int i = 1;
		while(i<=10){
			System.out.println(i);
			i++;
		}

		//求 1-10 之和
		int sum = 0;
		int i = 1;
		while(i<=10){
			sum += i;
			i++;
		}
		System.out.println(sum);//55
	}
}

for 循环 和 while 循环 是特别相似的,只是写法不同,并且,一般情况下,for 循环适用于明确知道循环次数的情况,while 循环则适用于循环次数不明确,但判断条件已知的情况

do…while… 循环

格式:
初始化语句;
do{
         ~~~~~~~~ 循环体语句;
         ~~~~~~~~ 循环控制语句;
}while(判断条件语句)
在do…while循环中,do中的内容是至少会执行一次的
若判断条件语句为 true ,则do循环中的内容持续执行,直到判断条件语句变为 false 后,该循环结束
执行流程:
与之前循环的执行流程相同,初始化语句 - (判断条件语句 - 循环体语句 - 循环控制语句),之后循环执行前面括号中的三条语句

//代码演示
public class DoWhileDemo{
	public static void main(String[] args){
		//简单案例 1 (打印 1-10)
		int i = 1;
		do{
			System.out.println(i);
			i++;
		}while(i<=10);
		
		//案例2:判断密码是否输入正确,正确密码为123456
		//方法1
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入密码:");
		int pwd = 0;
		pwd = sc.nextInt();
		do{
			System.out.println("密码错误,请重新输入:");
			pwd = sc.nextInt();
		}while(pwd!=123456)
		System.out.println("登录成功!");
		//方法2
		Scanner sc = new Scanner(System.in);
  		System.out.println("请输入密码:");
  		int pwd = 0;
  		do{
  			pwd = sc.nextInt();
  			if(pwd!=123456){
				System.out.println("密码错误,请重新输入:");
  			  	pwd = sc.nextInt();
			}else{
				break;
			}
    		}while(true)
  		System.out.println("登录成功!");

	}
}
  • 注意:do…while 循环中,可以将 判断条件语句 放在while里,或者放在do中做一个判断,这种情况do会一直执行,所以此时就必须在do中加一个跳转控制语句break,以便在条件成立时可以跳出本循环

循环的嵌套

  • 一般循环的嵌套大多指 for 循环中 套一个 for 循环,案例如下:
    public class ForForDemo{
    	public static void main(String[] args){
    		//案例 1
    		//输出 5行5列 *
    		for(int i = 1;i<=5;i++){
    			for(int j = 1;j<=5;j++){
    				System.out.print("*");
    			}
    			System.out.println();
    		}
    		//输出结果为:
    		/* *****
    		   *****
    		   *****
    		   *****
    		   *****  */
    
    		//案例 2
    		//输出倒三角形状的 * 阵
    		for(int i = 1;i<=5;i++){
    			for(int j = i;j<=5;j++){
    				System.out.print("*");
    			}
    			System.out.println();
    		}
    		//输出结果为:
    		/* *****
    		   ****
    		   ***
    		   **
    		   *   */
    	}
    }
  • 要分清楚内外层循环各自的作用,对于循环的嵌套还是要多加练习才能更好更快的掌握

猜你喜欢

转载自blog.csdn.net/weixin_42419342/article/details/106957128