文章目錄
流程控制分以下三類
- 順序(見前章順序結構圖)
- 選擇結構(見前章選擇結構圖)
- 循環結構(如下圖)
使用循環的四個基本要素:
- 初始化值
- 條件判斷
- 打印需求(執行代碼塊)
- 迭代(更新)
順序結構 循環結構-while的應用
package org.gyun.whiles;
/**
*
* @ClassName:Test1.java
* @Description:順序結構 循環結構-while的應用
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @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:[email protected]
* @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:[email protected]
* @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(登錄(包含攔截器)和註銷