流程結構
- 條件語句
當成程序中設定某一個條件滿足才執行的語句
- if(條件語句)
{
代碼段1
}else{
代碼段2
}
條件語句執行后結果是布爾類型
條件語句要使用比較和邏輯運算符
執行過程
1.執行條件語句
2.如果條件語句結果為true,則執行if后面的代碼段
3.如果條件語句結果為false,則執行else后面的代碼段
import java.util.Scanner;
public class 偶數奇數 {
public static void main(String[] args) {
int number ;
// 掃描鍵盤輸入 固定寫法
Scanner sc = new Scanner(System.in);
number = sc.nextInt();
if (number%2==0) {
System.out.println(number+"是偶數");
} else {
System.out.println(number+"是奇數");
}
}
}
- if(條件語句1)
{
代碼段1
}else if(條件語句2)
{
代碼段2
}else if(條件語句3)
{
代碼段3
}...
[ 可選
else{
代碼段else
}
}
執行過程
1.執行條件語句1
2.如果條件語句1結果為true則執行代碼段1,代碼段1執行結束,后續的條件語句代碼不再執行
3.如果條件語句1結果為false則執行條件語句2,以此類推
4.如果所有的條件語句執行結果都為false,那么執行代碼段else
import java.util.Scanner;
public class 春夏秋冬 {
public static void main(String[] args) {
int month;
System.out.println("輸入月份");
Scanner sc = new Scanner(System.in);
month = sc.nextInt();
if ( month>=3&&month<=5 ) {
System.out.println(month+"月是春天");
}else if ( month==6||month==7||month==8 ) {
System.out.println(month+"月是夏天");
}else if ( month>=9&&month<=11 ) {
System.out.println(month+"月是秋天");
}else if ( month==12||month==1||month==2 ) {
System.out.println(month+"月是冬天");
}else {
System.out.println("換個星球再試試");
}
}
}
// 輸入三個數,按從小到大輸出
import java.util.Scanner;
public class 三個數排列 {
public static void main(String[] args) {
int x,y,z,t;
Scanner a = new Scanner(System.in);
x = a.nextInt();
y = a.nextInt();
z = a.nextInt();
// x,y互換
if ( x>y ) {
t = x;
x = y;
y = t;
}
// x,z互換
if ( x>z ) {
t = x;
x = z;
z = t;
}
// y,z互換
if ( y>z ) {
t = y;
y = z;
z = t;
}
System.out.println(x+"<"+y+"<"+z);
}
}
- 循環語句
某一部分代碼可以反復多次的運行
while和do while更適合循環次數不確定的場景
for循環更適合循環次數確定的場景
while實現判斷條件再執行循環,do while是先執行一次在判斷循環
- while(條件語句){
代碼段
}
執行過程
1.執行條件語句
2.如果條件語句結果是true,則執行大括號中的代碼段,執行結束后再去執行一次條件語句,依此類推,直到某一次條件語句執行結果為false,循環結束
import java.util.Scanner;
public class 存銀行 {
public static void main(String[] args) {
double money;
int age,i=1;
Scanner sc=new Scanner(System.in);
System.out.println("請輸入存款金額");
money = sc.nextDouble();// 等待輸入
System.out.println("請輸入存款年限");
age = sc.nextInt();
while ( i<=age ) {
money = money*0.0335+money;
i++;
}
System.out.println("到期后本息合計"+money);
}
}
- do{
代碼段
}while(條件語句);
執行過程
1.執行代碼段
2.執行條件語句
3.如果條件語句執行結果為true則再執行一次代碼段,以此類推條件結果為false時 循環結束
import java.util.Random;
public class dowhile應用場景 {
public static void main(String[] args) {
int i = 1;
int p;// p的值是0 謝謝惠顧;p的數據是1 再來一瓶
// 隨機數
Random r = new Random();
do {
System.out.println("暢飲一瓶老雪花*"+i);
p = r.nextInt(2);// 括號內為隨機數范圍
i++;
} while ( p==1 );
}
}
-
for(初始化語句;條件語句;循環后語句){
代碼段
}
執行過程.png
執行過程
1.執行初始化語句(只執行一次)
2.執行條件語句
3.如果結果為true,則執行代碼段
4.執行循環后語句
5.在執行條件語句,以此類推,知道某次條件語句之行為false 循環結束
public class for應用場景 {
public static void main(String[] args) {
// 猴子吃桃 一只猴子第一天摘下若干個桃子(不會做罐頭)
// 當即吃了(總數量)一半 ,不過癮又吃了一個
// 第二天重復第一天的騷操作。。。。
// 第十天的時候發現剩下一個桃子
// 計算第一天到底摘了多少桃子
// 前一天的桃子數量 = (今天的桃子數量+1)*2
int t = 1;
for (int i = 1; i < 10; i++) {
t = (t+1)*2;
}
System.out.println("猴子第一天共摘下"+t+"個桃子");
}
}