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