文章目录
流程控制分以下三类
- 顺序(见前章顺序结构图)
- 选择结构(见前章选择结构图)
- 循环结构(如下图)
使用循环的四个基本要素:
- 初始化值
- 条件判断
- 打印需求(执行代码块)
- 迭代(更新)
顺序结构 循环结构-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);
}
}
}
- Java入门-Java学习路线课程第一课:初识JAVA
- Java入门-Java学习路线课程第二课:变量与数据类型
- Java入门-Java学习路线课程第三课:选择结构
- Java入门-Java学习路线课程第五课:一维数组
- Java入门-Java学习路线课程第六课:二维数组
- Java入门-Java学习路线课程第七课:类和对象
- Java入门-Java学习路线课程第八课:方法和方法重载
- Java入门-Java学习路线扩展课程:equals的使用
- Java入门-Java学习路线课程面试篇:取商 / 和取余(模) % 符号的使用
- Java进阶-Java学习路线课程第一课:Java集合框架-ArrayList和LinkedList的使用
- Java进阶-Java学习路线课程第二课:Java集合框架-HashSet的使用及去重原理
- Spring框架-Java学习路线课程第一课:Spring核心
- Spring框架-Java学习路线课程:Spring的扩展配置
- Springboot框架-Java学习路线课程:Springboot框架的搭建之maven的配置
- java学习:在给学生演示用Myeclipse10.7.1工具生成War时,意外报错:SECURITY: INTEGRITY CHECK ERROR
- 使用jquery发送Ajax请求的几种异步刷新方式
- idea Springboot启动时内嵌tomcat报错- An incompatible version [1.1.33] of the APR based Apache Tomcat Native
- 一个简单的SSM框架Demo(登录(包含拦截器)和注销