1. 程式人生 > >Java基礎6-控制語句

Java基礎6-控制語句

size tor 類型 倒三角 list 自動 數字 nds 結果

一、控制語句的種類

java控制語句主要分為7種

1.控制選擇結構語句

  • if, if else
  • switch

2.控制循環結構語句

  • for
  • while
  • do while

3.改變控制語句順序

  • break
  • continue

一、控制選擇結構語句

1.if,if else語句

關於java語言中的if語句,屬於選擇結構,if語句又被稱為分支語句/條件控制語句:
1.if語句的語法結構:四種編寫方式
第一種:
if(布爾表達式){
java語句;
}
第二種
if(布爾表達式){
Java語句;
}else{
java語句;
}
第三種
if(布爾表達式){
java語句;
}else if(布爾表達式){
java語句;
}
else if(){
}
第四種
if(布爾表達式){
Java語句;
}else{
java語句;
}
第三種
if(布爾表達式){
java語句;
}else if(布爾表達式){
java語句;
}
else if(){
}else{
}
4.所有控制語句都可以嵌套使用,只要合理嵌套就行
註意:嵌套使用的時候,代碼格式要保證完美【該縮進的時候必須要縮進】
5.if語句的分支中只有一條java語句的話,大括號可以省略不寫,不推薦
if(true/false)java語句;

技術分享圖片
import java.util.Random;
//導包

public class call
{
    public static void main(String[] args){
//創建一個隨機數對象r
    Random r=new Random();
//在0-11這12個數中產生一個隨機數賦值給i
    int i=r.nextInt(12);
String name0="王海文";
String name1="李寶林";
String name2="田雨";
String name3="桑建武";
String name4="王龍翔";
String name5="郭佳訊";
String name6
="陳敬瑜"; String name7="魏仲豪"; String name8="王宇飛"; String name9="高健"; String name10="李壯壯"; String name11="張祿"; //判斷i的值並打印輸出相對應的姓名 if(i==0){ System.out.println(name0); } else if(i==1){ System.out.println(name1); } else if(i==2){ System.out.println(name2); } else if(i==3){ System.out.println(name3); } else if
(i==4){ System.out.println(name4); } else if(i==5){ System.out.println(name5); } else if(i==6){ System.out.println(name6); } else if(i==7){ System.out.println(name7); } else if(i==8){ System.out.println(name8); } else if(i==9){ System.out.println(name9); } else if(i==10){ System.out.println(name0); } else if(i==11){ System.out.println(name11); } } }
if,else if語句代碼示例,隨機點名系統

2.switch語句

1.switch語句也屬於選擇結構,也是分支語句
2.switch語句語法結構
switch(int或String類型的字面值或變量){
case int或String類型的字面值或變量:
java語句;
break;
case int或String類型的字面值或變量:
java語句;
break;
default:
java語句;
}
3.switch語句的執行原理:
switch後面小括號當中的“數據”和case後面的“數據”進行一一匹配,匹配成功的分支語句執行。
4.匹配成功的分支執行,分支當中最後有break語句的話整個switch語句終止。
5.匹配成功的分支執行,分支當中沒有break語句的話,直接進入下一個分支執行【不進行匹配】,這種現象被稱為case穿透現象
6.所有分支都沒有匹配成功,當有default語句,會執行default分支當中的程序
7.switch後面和case後面只能是int或String類型的數據,不能使探測其他類型,當然byte、short、char也可以直接寫到switch和case後面,因為可以自動轉換成int。
8.case可以合並:
int i=10;
switch(i){
case 1:case 2:case 3:case 10:
System0out.println("aaa")
}
*/

技術分享圖片
import java.util.Scanner;
public class workday
{
    public static void main(String[] args){
    System.out.println("請輸入1-7中任意數字");
    Scanner sc=new Scanner(System.in);
//控制臺輸入,後邊說
    int num=sc.nextInt();
    switch(num){
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
//若num=1,2,3,4,5都會執行輸出去上班
    System.out.println("滾去上班");
    break;
    case 6:
    case 7:
    System.out.println("盡情嗨起來");
    break;
    default:
    System.out.println("大傻逼,輸錯了");
    break;
        }
    }
}
switch語句代碼示例

二、控制循環結構語句

1.for循環

1.for循環的結構
for(初始化表達式:布爾表達式:更新表達式){
是需要重復執行的代碼片段【循環體:由java語句構成】
}
2.for循環的執行過程/重復原理?
2.1 初始化表達式、布爾表達式、更新表達式都不是必須的,但是兩個分號是必須的;
2.2 初始化表達式最先執行,並且在整個for循環當中只執行一次
2.3 布爾表達式必須是true/false
2.4 for的執行過程

for(① ; ; ③){

}

第一步,執行

第二步,執行②,如果判斷結果為true,執行第三步,如果判斷結果為false,執行第五步

第三步,執行

第四步,執行③,然後重復執行第二步

第五步,退出循環

用for循環打印菱形(嵌套):

技術分享圖片

public class circulation
{
    public static void main(String[] args){
    
//這個是打印直角三角形
for (int i=1;i<=7;i++ )
//外層循環控制行
    {
        
        for (int j=1;j<=i ;j++ )
        {
            System.out.print("*");
        }
        System.out.println("\n");
    }
    //倒序排列,倒直角三角
for (int i=1;i<=9 ;i++)
{
    for (int j=9;j>=i ;j-- )
    {
//當j大於i時打印輸出*,例如當i=1,j=9,j>i,輸出*,j-1=8>i=1,繼續輸出*,當j--到1時,j=i,條件不滿足,結束本次循環
//外層循環此時i<9,i+1=2<9,滿足條件,再進行內層for循環,以此往復。
        System.out.print("*");
    }
    System.out.println("\n");
}

//打印菱形的2組for循環,並且每組for循環裏又嵌套3個for循環,共8個for循環
for (int i=1;i<=8 ;i++ )
    {
        for (int k=8;k>i ;k-- )
        {
//當滿足k>i這個條件就打印空格
        System.out.print(" ");
        }
//打印完空格後緊接著在空格後邊打印*
        for (int j=1;j<=i ;j++ )
        {
            System.out.print("*");
        }
//上邊循環打印完成後緊接著繼續打印一組*
        for (int j=1;j<=i ;j++ )
        {
            System.out.print("*");
        }
//"\n"是一個轉義字符,為換行
        System.out.println("\n");
    }
//這是倒菱形的下半部分,倒三角形
for (int i=1;i<=7 ;i++)
{
    for (int k=1;k<=i ;k++ )
    {
    System.out.print(" ");
    }
    for (int j=7;j>=i ;j-- )
    {
    System.out.print("*");
    }
    for (int j=7;j>=i ;j-- )
    {
        System.out.print("*");
    }
    System.out.println("\n");
}
/*for (int i=1;i<=8 ;i++ )
    {
    for (int k=8;k>i ;k-- )
    {
        System.out.print(" ");
    }
        for (int j=1;j<=i ;j++ )
        {
            System.out.print("*");
        }
        System.out.println("\n");
    } */
    }
}

2.while循環

1、while和do while循環語法結構
while(布爾表達式){
循環體
}
2.while循環的循環次數:
0~N次
註意:while循環的循環體可能執行次數為0次

3.do while循環

do {

執行語句

} while(循環條件){};

先執行再循環

4.無限循環

while(true){}

for(;;){}

無限循環存在的原因是並不知道循環多少次,而是根據某些條件,來控制循環。

class note11 
{
    public static void main(String[] args) 
    {
        while(true){
        System.out.println("死循環");
        }
        //編譯器檢測到該程序永遠都無法被執行,所以編譯報錯
        System.out.println("Hello World!");
    }
}
技術分享圖片
import java.util.Scanner;
import java.util.ArrayList;
class Bitch 
{
    
    public static void main(String[] args) 
    {
        ArrayList<Fuck> list=new ArrayList<Fuck>();
        //while無限循環與switch語句嵌套使用
        while(true){
            switch (Choose())
            {
            case 1:
                inventory(list);
                break;
            case 2:
                AddGoods(list);
                break;
            case 3:
                alter(list);
                break;
            case 4:
                delete(list);
                break;
            case 5:
//當用戶輸入5的時候結束循環,否則循環一直執行
                return;
                default:
                System.out.println("您選擇的功能有誤,請重新輸入!");
                break;
            }
        }    
    }
    //用戶選擇;
    public static int Choose(){
    System.out.println("-------------------庫存管理--------------");
    System.out.println("1.查看庫存清單");
    System.out.println("2.添加商品信息");
    System.out.println("3.修改商品信息");
    System.out.println("4.刪除商品信息");
    System.out.println("5.退出");
    Scanner sc=new Scanner(System.in);
    System.out.println("請輸入您的選擇");
    int num=sc.nextInt();
    return num;
    }
    //添加商品信息
    public static void AddGoods(ArrayList<Fuck> list){
    Scanner sc=new Scanner(System.in);
    while (true)
        {
        System.out.println("1.繼續添加商品");
        System.out.println("2.退出");
        int number=sc.nextInt();
        if (number==1)
        {
            Fuck you=new Fuck();
            System.out.println("請輸入您要添加的商品品牌/尺寸/價格/數量");
            you.brands=sc.next();
            you.size=sc.nextDouble();
            you.price=sc.nextDouble();
            you.counts=sc.nextInt();
            list.add(you);
        }else{
        return;
        }
    inventory(list);
        }
    }
    //修改商品信息
public static void alter(ArrayList<Fuck> list){
    Scanner sc=new Scanner(System.in);
    while(true){
        System.out.println("1.繼續修改");
        System.out.println("2.退出");
        int number=sc.nextInt();
        switch(number){
            case 1:
            System.out.println("---------當前商品庫存信息--------");
            System.out.println("商品編號\t商品品牌\t庫存數量");
            for(int i=0;i<list.size();i++){
            System.out.println((i+1)+"\t"+list.get(i).brands+
            "\t"+list.get(i).counts);
                }
            System.out.println("請輸入您要修改的商品編號:");
            int num=sc.nextInt()-1;
            System.out.println("請輸入您要修改的商品數量:");
            list.get(num).counts=sc.nextInt();    
            inventory(list);
            break;
            case 2:
                return;
            default:
            System.out.println("大傻逼");
            break;
            }
        }
    }
//刪除商品信息
public static void delete(ArrayList<Fuck> list){
        System.out.println("---------當前商品庫存信息--------");
        System.out.println("商品編號\t商品品牌\t庫存數量");
        for(int i=0;i<list.size();i++){
            System.out.println((i+1)+"\t"+list.get(i).brands+
            "\t"+list.get(i).counts);
        }
        System.out.println("請輸入您要刪除的商品編號:");
        Scanner sc=new Scanner(System.in);
        int num=sc.nextInt()-1;
        list.remove(num);
    }
    //查看庫存清單
    public static void inventory(ArrayList<Fuck> list){
    System.out.println("---------------商城庫存清單-------------");
    System.out.println("商品品牌\t商品尺寸\t商品價格\t庫存數量");
    double SumCounts=0;
    int    SumPrice=0;
    for (int i=0;i<list.size();i++ )
    {
        System.out.println(list.get(i).brands+‘\t‘+list.get(i).size+‘\t‘+list.get(i).price+‘\t‘+list.get(i).counts);
        SumCounts+=list.get(i).counts;
        SumPrice+=list.get(i).counts*list.get(i).price;
    }
    System.out.println("-----------------------------------------");
    System.out.println("總庫存數:"+SumCounts);
    System.out.println("總金額:"+SumPrice);
    
    }
}
無限循環

三、循環控制語句

break
1.break語句同樣可以使用在循環語句當中,用來終止循環
2.break語句可以使用在for,while,do...while循環語句中用來跳出循環
continue
1.表示繼續,下一個
2.主要出現在循環語句控制循環的執行
3.break和continue的區別?
break表示循環不執行了
continue表示直接進入下一個

Java基礎6-控制語句