Java第一階段(2)【 控制語句 】11.7

控制語句

  • 分支/判斷語句: if-else語句 、switch語句
  • 循環語句 for循環while循環do…while循環
  • 與程序跳轉相關的其他語句 breakcontinuereturn

if語句

  1. 簡約版
    if(條件){
    如果條件成立,執行該語句;
    }

  2. 完整版
    if(條件){
    如果條件成立,執行語句1;
    }else{
    條件不成立,執行語句2;
    }

  3. 豪華版
    if(條件1){
    如果條件1成立,執行語句1
    }else if(條件2){
    如果條件2成立,執行語句2
    }else if(條件3){
    如果條件3成立,執行語句3
    }…

    }else{
    如果以上條件都不成立,執行這裏面的代碼
    }

  • if中條件的結果一定是布爾類型
  • 如果都是if語句 ,所有if語句都會被執行
  • 加了else的if語句 效率會比全是if的效率高
  • if:萬能的(判斷範圍)

switch語句

  1. switch(值或表達式){
    case 具體的值1:   (類型必須和小括弧中的 數據類型保持一致)
    如果匹配上值1,就執行這裏的代碼
    break;   (在switch中代表結束這個switch)
    case 具體的值2:
    如果匹配上值2,就執行這裏的代碼
    break;
    case 具體的值3:
    如果匹配上值3,就執行這裏的代碼
    break;

    default:
    如果以上的值都不匹配,就會走這裏的代碼
    break;
    }
//代碼呈現
switch(int i){
	case 1:
		int a = 1;
		break;
	case 2:
		int a = 2;
		break;
	case 3:
		int a = 3;
		break;
	default:
		int a = 4;
		break;
}
  • switch中的值或表達式一定是byteshortintchar(從jdk1.7開始支持String)
  • switch:固定的幾個選項(10個以內)
  • 特點 :穿透現象

鍵盤輸入

  1. 創建鍵盤輸入的對象
    Scanner s =new Scanner(System.in);
  2. 調用鍵盤輸入對象的輸入int類型的整數的方法,控制檯會等待用戶輸入
    System.out.println(“請輸入一個分數:”);
    int score=s.nextInt();   (將鍵盤輸入賦值給 score )
  3. 隨機數的對象 Random
    Random r = new Random();
    int score = r.nextInt(3);  (隨機一個0~2之間的整數 )

快捷鍵

  • 快速多行註釋: ctrl + /
  • 快速補充:alt + /  如:mainsyso
  • 快速格式化:ctrl + shift + F

練習

1. 商品換購系統

滿100元可參與換購
手動輸入本次消費的金額:滿100元可
選項一: +1元換購鼠標
選項二: +5元換購鍵盤
選項三: +10元換購充電寶
選項四: +20元換購移動硬盤
根據輸入的選項來判斷換購的物品,並顯示最終消費
否則直接結算顯示消費金額。

package test;
import java.util.Scanner;
//商品換購系統
public class shopping {
	public static void main(String[] args) throws InterruptedException {
		//全局變量k,用於do while循環
		int k=1;
		//全局變量sum,用於統計消費金額
		double sum = 0;
		do{
			//鍵盤輸入Scanner
			Scanner s = new Scanner(System.in);
			System.out.println("請輸入本次消費的金額:");
			double money = s.nextInt();
			if (money < 100 && money > 0) {
				System.out.println("本次消費金額不足100元,無法換購,請繼續消費");
				//結束當前循環,返回開始進行下次循環
				continue;
			} else if (money >= 100) {
				System.out.println("本次消費的金額:" + money + "元,可參與換購");
				System.out.println("選項一: +1元換購鼠標");
				System.out.println("選項二: +5元換購鍵盤");
				System.out.println("選項三: +10元換購充電寶");
				System.out.println("選項四: +20元換購移動硬盤");
				System.out.println("請輸入您想換購的選項(1,2,3,4)");
				//輸入選擇的選項並賦值給choose
				int choose = s.nextInt();

				//延遲1秒
				Thread.sleep(1000);
				System.out.println("電腦正在計算");
				Thread.sleep(1000);

				//如果選擇1
				if (choose == 1) {
					money = money + 1;
					System.out.println("換購鼠標成功,本次消費" + money + "元");
				}
				//如果選擇2
				if (choose == 2) {
					money = money + 5;
					System.out.println("換購鍵盤成功,本次消費" + money + "元");
				}
				//如果選擇3
				if (choose == 3) {
					money = money + 10;
					System.out.println("換購充電寶成功,本次消費" + money + "元");
				}
				//如果選擇4
				if (choose == 4) {
					money = money + 20;
					System.out.println("換購移動硬盤成功,本次消費" + money + "元");
				}
			} else {
				System.out.println("金額有誤,請重新輸入");
				continue;
			}

			Scanner a = new Scanner(System.in);
			System.out.println("您要繼續換購嗎?  1.繼續  2.回家了");
			k = a.nextInt();
			if(k!=1&&k!=2){
				System.out.println("違反規則輸入,本次購物作廢,請重新換購");
				continue;
			}
			//之前總消費金額加上這次的金額
			sum = sum+money;
		}
		//當k不等於2的時候循環,等於2時跳出循環
		while(k!=2);
		System.out.println("總共消費了"+sum+"元,"+"回家看電視了~");
	}
}

2. 機票訂購系統

假設機票的原價是1000元。
根據淡季,旺季 以及 頭等艙 經濟艙 來判斷機票的最終價格。
首先用戶輸入選擇旅遊的時間 :1淡季 2旺季
然後繼續輸入選擇艙位:1頭等艙 2經濟艙
最後顯示最終的機票價格
若輸入其他數字則提示信息輸入有誤並結束程序
注: 5 6 7月, 9 10 11月爲旺季,其他爲淡季,
淡季經濟艙打6折 ,頭等艙打7折
旺季經濟艙打8折,頭等艙打9折

package test;
import java.util.Scanner;
//	機票訂購系統
public class air_ticket {
	public static void main(String[] args) throws InterruptedException {
		// 全局變量k,用於do while循環
		int k = 1;
		// 全局變量space,用於選擇的艙位
		int space = 0;
		// 全局變量sum,用於統計總車票費
		double sum = 0;
		// 全局變量ticket,用於票價
		double ticket = 1000;
		do {
			//局部變量month_choose,用於選擇旅遊時間
			int month_choose;
			//鍵盤輸入
			Scanner s = new Scanner(System.in);
			System.out.println("請輸入旅遊的時間(1-12):");
			int month = s.nextInt();
			if (month <= 0 || month > 12) {
				System.out.println("您不在地球,請返回地球旅遊");
				continue;
			}

			do {
				System.out.println("請選擇您想要的艙位:1.頭等艙  2.經濟艙");
				space = s.nextInt();
				if (space != 1 & space != 2)
					System.out.println("請選擇正確的艙位");
			} while (space != 1 & space != 2);

			//延遲輸入1秒
			Thread.sleep(1000);
			System.out.println("電腦正在計算");
			Thread.sleep(1000);

			if (month >= 5 && month <= 11 && month!=8) {
				System.out.print("您旅遊的時間是旺季,");
				if (space == 1) {
					ticket = ticket * 0.9;
					System.out.println("選擇的是頭等艙");
					System.out.println("爲您打了9折,最終的票價爲" + ticket + "元");
				}
				if (space == 2) {
					ticket = ticket * 0.8;
					System.out.println("選擇的是經濟艙");
					System.out.println("爲您打了8折,最終的票價爲" + ticket + "元");
				}
			} else if (month <= 0 || month > 12) {
				System.out.println("您不在地球,請返回地球旅遊");
				continue;
			} else {
				System.out.print("您旅遊的時間是淡季,");
				if (space == 1) {
					ticket = ticket * 0.7;
					System.out.println("選擇的是頭等艙");
					System.out.println("爲您打了7折,最終的票價爲" + ticket + "元");
				}
				if (space == 2) {
					ticket = ticket * 0.6;
					System.out.println("選擇的是經濟艙");
					System.out.println("爲您打了6折,最終的票價爲" + ticket + "元");
				}
			}
			
			Scanner a = new Scanner(System.in);
			System.out.println("您要繼續訂票嗎? 1.繼續  2.關閉");
			k = a.nextInt();
			if(k!=1&&k!=2){
				System.out.println("違反規則輸入,本次訂票作廢,請重新訂票");
				continue;
			}
			//上次總票價加上這次的票價
			sum = sum + ticket;
		} while (k != 2);
		System.out.println("此次訂票總共花費" + sum + "元,歡迎下次訂票");
	}
}

3. 猜拳遊戲

玩家出拳 判斷出拳文字 (判斷玩家輸入有誤情況)
電腦出拳 判斷出拳的文字
判斷勝負

package test;
import java.util.Random;
import java.util.Scanner;
//猜拳遊戲
public class guess2 {
	public static void main(String[] args) throws InterruptedException  {
		int k =1;
		int win = 0;
		int deuce = 0;
		int lose = 0;
		do{
			Scanner s = new Scanner(System.in);
			System.out.println("請輸入你想出的(1.石頭 2.剪刀 3.布 0.退出遊戲):");
			int guess = s.nextInt();
			if(guess ==1){
				System.out.println("你選擇出石頭");
			}else if(guess ==2){
				System.out.println("你選擇出剪刀");
			}else if(guess == 3){
				System.out.println("你選擇出布");
			}else if(guess == 0){
				System.out.println("退出遊戲");
				break;
			}else{
				System.out.println("不存在,請重新選擇");
				continue;
			}
			
			//生成隨機數
			Random r = new Random();
			//+1的目的是因爲,nextInt(3)的結果會是 0,1,2 爲了得到1,2,3 必須+1
			int computer = r.nextInt(3)+1;
			Thread.sleep(1000);
			System.out.println("電腦正在思考");
			Thread.sleep(1000);
			if(computer == 1){
				System.out.println("電腦選擇出石頭");
			}else if(computer ==2){
				System.out.println("電腦選擇出剪刀");
			}else{
				System.out.println("電腦選擇出布");
			}
			
			Thread.sleep(1000);
			//玩家獲勝有這三種可能:玩家出石頭,電腦出剪刀;玩家出剪刀,電腦出布;玩家出布,電腦出石頭
			if((guess==1&&computer==2) || (guess ==2 &&computer ==3)|| (guess ==3 && computer ==1)){
				System.out.println("玩家獲勝");
				win++;
			}else if(guess==computer){
				System.out.println("平局");
				deuce++;
			}else{
				System.out.println("電腦獲勝");
				lose++;
			}
			Scanner a = new Scanner(System.in);
			System.out.println("繼續比賽嗎?  1.繼續  2.查看結果並退出");
			k = a.nextInt();
			if(k!=1&&k!=2){
				System.out.println("違反規則輸入,重新比賽");
				continue;
			}
		}while(k!=2);
		System.out.println("你總共贏了"+win+"次");
		System.out.println("平局了"+deuce+"次");
		System.out.println("電腦贏了"+lose+"次");
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章