JAVA流程控制詳解
1,什麼是流程控制,流程控制的作用是什麼?
程式的執行是多種多樣的,JAVA程式的流程是自上而下,從左到右,但是當我們需要選擇一些條件使程式進行有選擇性(選擇,跳轉,重複等)的執行,為了友善控制程式的執行流程,需要使用路程控制語句。流程控制語句主要包括順序語句,選擇語句,循環語句以及跳轉語句。
2,順序結構
2.1 什麼是順序結構
順序結構是程式控制中最基本的一種流程結構,即按照語句出現的順序從上至下依次執行。
代碼:
計算矩形的面積
public class Erea{
public static void mian(String[] args){
double x,y ,z;
Scanner scan=new Scanner(System.in);
x=scan.nextDouble();
y=scan.nextDouble();
z=x*y;
System.out.println("矩形的面積為:"+z);
}
}
3,選擇結構
3,1什麼是選擇結構
選擇結構是程式在處理時根據某個特定的條件選擇其中的一個分支執行的一種流程結構,選擇結構主要有單選澤,雙選擇,多選擇。
3.2.1 if語句
文法:
if(條件){
語句序列
}
示例:
public class ifTest{
public static void main(Stirng[] args){
int x=5,y=8;
if(x>y){
y=x+y;
}
x=x+y;
System.out.println("x="+x);
System.out.println(" y="+y);
}
}
3.2.2 if …else語句
文法:
if(條件){
語句序列1
}
else{
語句序列2
}
示例:
public class Test{
public static void main(String[] args){
int x=15;
if(x>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
}
}
3.2.3 if語句嵌套
文法:
if(條件1){
…其他語句
if(條件2){
語句序列1;
}
else{
語句序列2;
}
}
示例1:
import java.util.*; //引用java.util的所有類
public class Test1{
public static void main(String[] args){
double x,y,z;
Scanner input=new Scanner(System.in);
System.out.println("請輸入第一個數:");
x=input.nextDouble();
System.out.println("請輸入第二個數: ");
y=input.nextDouble();
z=x/y;
if(y !=0) {
if ( y>0) {
System.out.println("結果為:"+z);
} else {
System.out.println("結果為:"+z);
}
}
}
}
示例2:
個人所得稅采用超額累進稅率的征收方法。設目前稅率為:月收入低于3500部分不收稅,高于3500低于5000部分征收3%,高于5000低于8000部分征收10%,高于8000征收15%。編寫一個程式,計算應征收的個人所得稅。
//程式分析:
//1,定義變量:月收入salary,個人所得稅tax
//2,分段計算個人所得稅
public class Test2{
public static void main(String[] args){
double salary,tax;
Scanner input=new Scanner(System.in);
System.out.println("請輸入你的工資:");
salary=input.nextDouble();
if(salary<=3500){
tax=0;
}else if(salary<=5000){
tax=(salary-3500)*0.03;
}else if(salary<=8000){
tax=(salary-3500)*0.1+45;
}else{
tax=(salary-8000)*0.15+345;
}
System.out.println("應交個人所得稅:"+tax);
}
}
從上面的例題大家可以看出if…else雖然能夠解決多路分支的問題但使用起來不是很友善,是以我們選擇下面的switch開關語句來解決多路分支問題。
3.2.4switch語句
文法:
switch(表達式){
case常量1:
語句序列1;
break;
case常量2:
語句序列2;
break;
case常量n:
語句序列n;
break;
default:
語句序列n+1;
break;
}
示例:
供電公司階梯收取費用,在100度以下的普通使用者每度電收0.5元,超過100度低于300度,超過的部分每度需要繳納0.8元的電費;超過300度,超過的部分每度支付1.2元。
public class Test4{
public static void main(Stirng[] args){
int n;
double fare;
Scanner scan=new Scanner(System.in);
System.out.println("請輸入使用的電的度數:");
n=scan.nextInt();
switch (n/100){
case 0:
fare=n*0.5;break;
case 1:
case 2:
fare=(n-100)*0.8+50;break;
default:
fare=(n-300)*1.2+210;break;
}
System.out.println("需要繳納的費用:"+fare+"元");
}
}
注意: switch後面的括号中的表達式的資料類型不可以是double,float,long
case後面必須為常量表達式
case與常量表達式之間必須有一個空格或Tab鍵間隔
4,循環結構
4.1什麼是循環結構
循環結構就是在滿足一定條件的情況下反複執行某一個操作。主要包括while循環,do…while循環和for循環。
循環四要素:
循環初始化:一條或多條語句,這些語句完成一些初始化操作,讓循環開始執行
循環繼續條件:控制循環是否繼續或結束的條件
循環體:需要被循環執行的代碼
循環步長(間距,周期):目前循環和下一次循環之間的差量
4.2.1while循環語句
文法:
初始化
while(條件){
語句序列
}
切記:while循環中一定要把初始化放在循環之外,否則每當執行一次循環,就會初始化一個變量,占用空間。
while循環和for循環類似;可以直接由for循環改造而來,例如:
示例:
public class Test5{
public static void main(String[] args) {
int a=5,b=8;
while(a<b){
a++;
}
System.out.println(a);
}
}
4.2.2 do…while循環
此循環與前邊兩者的循環有一個很大的不同循環體在判斷循環條件之前無條件執行一次
文法:
初始化
do{循環體;循環步長}
while(循環判斷條件);
執行過程:
從初始化開始,順序執行,在while的判斷條件中進行判斷選擇,(如果結果為true,繼續執行循環體,否則跳出循環)
示例:
class Test8{
public static void main(String[] args){
int i=1;
do{
i+=1;
}
while(i<0);
System.out.println(i);
}
}
4.2.3 for循環
文法:
for(表達式1;表達式2;表達式3){
語句序列;
}
for循環的執行:
1.從初始化開始執行
2.執行循環條件(如果循環條件判斷為true,則執行循環體,否則跳出循環)
3.執行循環體
4.執行循環步長(為了改變循環條件,使其能在某種情況下跳出循環,而不是執行死循環)
适用場合
1.程式中同一操作需要執行n(n>1)多次
2.明确知道循環的結束條件。
示例:
class Test6{
public static void main(String[] args){
int sum=0;
for(int i=0;i<=100;i++){
sum+=i;
}
System.out.println(sum);
}
}
到這裡就告一段落了,如有不準确的地方請指教。