JavaSE循环结构


文章目录

  • 流程控制分以下三类
  • 使用循环的四个基本要素:
  • 顺序结构 循环结构-while的应用
  • while的语法
  • do-while的语法
  • for的语法
  • 循环结构-while do-while for的使用
  • 两种最简单的死循环格式
  • while do-while for执行顺序
  • while do-while for使用场景
  • 补充break跳出循环的演示案例:


流程控制分以下三类

  • 顺序(见前章顺序结构图)
  • 选择结构(见前章选择结构图)
  • 循环结构(如下图)

java 循环 int 保证原子性_for

使用循环的四个基本要素:

  • 初始化值
  • 条件判断
  • 打印需求(执行代码块)
  • 迭代(更新)

顺序结构 循环结构-while的应用

package org.gyun.whiles;

/**
 * 
 * @ClassName:Test1.java
 * @Description:顺序结构 循环结构-while的应用
 * @Author:DongGaoYun
 * @URL: www.gyun.org
 * @Email:DongGaoYun@qq.com
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-5 下午3:18:18
 * @Version:1.0
 */
public class Test2 {	
	// while使用步骤:
	/**
	 * 使用循环有几个条件: 1.初始化值 2.条件判断 3.打印需求 4.迭代(更新)
	 */
	public static void main(String[] args) {
		// 循环
		// 调用方法
		// 案例1
		//TestCase();
		// 案例2
		// whileTest1();
		// 声明变量
		// 打印50遍好好学习,天天向上
		//案例3
		int i = 50;
		while (i >= 1) {
			System.out.println("第" + (50 - i + 1) + "遍:好好学习,天天向上!");
			i--;// --i i--没有区别
		}
	}

	// 顺序结构 从上到下 依次(顺序)打印
	private static void TestCase() {
		System.out.println("第1遍:好好学习,天天向上!");
		System.out.println("第2遍:好好学习,天天向上!");
		System.out.println("第3遍:好好学习,天天向上!");
		System.out.println("第4遍:好好学习,天天向上!");
		System.out.println("第5遍:好好学习,天天向上!");
		System.out.println("第6遍:好好学习,天天向上!");
		System.out.println("第7遍:好好学习,天天向上!");
		System.out.println("第8遍:好好学习,天天向上!");
		System.out.println("第9遍:好好学习,天天向上!");
		System.out.println("第10遍:好好学习,天天向上!");
	}

	// while的用法 这个会死循环
	private static void whileTest1() {
		int i = 0;
		int num = 0;
		while (i < 100) {
			System.out.println("第" + (++num) + "遍:好好学习,天天向上!");
		}
	}
}

while的语法

初始化语句;
while(判断条件语句) {
循环体语句;
迭代(更新);
}


do-while的语法

初始化语句;
do {
循环体语句;
迭代(更新);
}while(判断条件语句);


for的语法

for(初始化表达式;条件表达式;循环后的迭代) {
循环体语句;
}


循环结构-while do-while for的使用

package org.gyun.whiles;

import java.util.Scanner;

/**
 * 
 * @ClassName:Test1.java
 * @Description: 循环结构-while do-while for的使用
 * @Author:DongGaoYun
 * @URL: www.gyun.org
 * @Email:DongGaoYun@qq.com
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-5 下午3:18:18
 * @Version:1.0
 */
public class Test5_While_DoWhile_For {
	/**
	 *  for使用步骤:
	 * 使用循环有几个条件: 1.初始化值 2.条件判断 3.打印需求 4.迭代(更新)
	 * 
	 * 需求: 循环输入某同学S1结业考试的5门课成绩,并计算平均分 1.输入同学的姓名 2.循环输入5门成绩  for(int
	 * i=1;i<=5;i++) 1.初始化值 int i=1 2.条件判断 i<=5 3.打印需求
	 * System.out.println("输入S1结业考试的第+i+门课成绩:"); 4.迭代(更新) i++ 技术: Scanner对象 for
	 * 打印
	 */
	public static void main(String[] args) {
		// whileTest2();
		// 创建Scanner对象三步走:引包 创建对象 使用
		Scanner input = new Scanner(System.in);
		System.out.print("请输入姓名:");
		String name = input.next();
		int count = 0;
		// 有固定的次数,就用for
		for (int i = 1; i <= 5; i++) {
			//循环操作
			System.out.print("输入S1结业考试的第" + i + "门课成绩:");
			int score = input.nextInt();
			count += score;// count=count+score
		}
		System.out.println(name + "的平均成绩为:" + count / 5);
	}
	
	/**
	 * while使用步骤:
	 * 使用循环有几个条件:
	 * 1.初始化值
	 * 2.条件判断
	 * 3.打印需求
	 * 4.迭代(更新)
	 * while的用法 //先判断,再执行
	 * 需求:
	 * 老师每天检查张浩的学习任务是否合格,如果不合格,则继续进行。
	 * 老师给张浩安排的每天的学习任务为:上午阅读教材,学习理论部分,
	 * 下午上机编程,掌握代码部分
	 * 1.初始化值
	 * Scanner input=new Scanner(System.in)
	 * String str=input.next();
	 * 2.条件判断
	 * while(!"Y".equals(str)){
	 * }
	 * 3.打印需求
	 * System.out.println("上午阅读教材,学习理论部分");
	 * System.out.println("下午上机编程,掌握代码部分");
	 * 4.迭代(更新)
	 * String str=input.next();
	 */
	private static void whileTest2() {
		// 创建Scanner对象三步走:引包 创建对象 使用
		Scanner input = new Scanner(System.in);
		System.out.println("是否合格(Y/N)");
		String str = input.next();
		// 循环判断
		while (!"Y".equals(str)) {
			//循环操作
			// 忽略大小的方法equalsIgnoreCase
			// while (!"Y".equalsIgnoreCase(str)) {
			System.out.println("上午阅读教材,学习理论部分");
			System.out.println("下午上机编程,掌握代码部分");
			// 迭代更新
			System.out.println("是否合格(Y/N)");
			str = input.next();
		}
		System.out.println("恭喜你通过了!");
	}
	/**
	 * do while使用步骤:
	 * 使用循环有几个条件:
	 * 1.初始化值
	 * 2.打印需求
	 * 3.迭代(更新)
	 * 4.条件判断	
	 * 需求可以参考while
	 * do while先执行,后判断
	*/ 
	private static void doWhileTest3() {
		// 创建Scanner对象三步走:引包 创建对象 使用
		Scanner input = new Scanner(System.in);
		String str = "";
		// 循环判断
		do {
			//循环操作
			//打印需求
			System.out.println("上午阅读教材,学习理论部分");
			System.out.println("下午上机编程,掌握代码部分");
			// 迭代更新
			System.out.println("是否合格(Y/N)");
			str = input.next();
		} while (!"Y".equals(str));
		System.out.println("恭喜你通过了!");
	}
}

两种最简单的死循环格式

  • while(true){…}
  • for( ; ; ){…}

while do-while for执行顺序

  • while 循环:先判断,再执行
  • do-while循环:先执行,再判断
  • for循环:先判断,再执行

while do-while for使用场景

  • 循环次数固定的情况下,一般选用for循环
  • 循环次数不固定的情况下,一般选用while循环
  • 循环次数不固定,且要先执行一次再判断的情况下,一般选用do-while循环

补充break跳出循环的演示案例:

package org.gyun.test;

/**
 * @ClassName:Test1.java
 * @Description:break的使用
 * @Author:DongGaoYun 
 * @URL: www.gyun.org
 * @Email:DongGaoYun@qq.com
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-6 上午10:05:16
 * @Version:1.0
 */
public class Test1 {

	/**
	 * break的使用
	 */
	public static void main(String[] args) {
		// 初始化变量
		int count = 1;
		
		for (; count <= 21; count++) {
			// 需求: 打印完5遍“欢迎21班新学员”之后结束循环
			if (count == 6) {
				break;
			}
			System.out.println("欢迎21班新学员!\t" + count);
		}
	}
}