控制語句
- 分支/判斷語句: if-else語句 、switch語句
- 循環語句 for循環、while循環、do…while循環
- 與程序跳轉相關的其他語句 break、continue、return
if語句
-
簡約版
if(條件
){
如果條件
成立,執行該語句;
} -
完整版
if(條件
){
如果條件
成立,執行語句1;
}else{
條件
不成立,執行語句2;
} -
豪華版
if(條件1
){
如果條件1
成立,執行語句1
}else if(條件2
){
如果條件2
成立,執行語句2
}else if(條件3
){
如果條件3
成立,執行語句3
}…
…
}else{
如果以上條件都不成立
,執行這裏面的代碼
}
- if中條件的結果一定是布爾類型的
- 如果都是if語句 ,所有if語句都會被執行
- 加了else的if語句 效率會比全是if的效率高
- if:萬能的(判斷範圍)
switch語句
- 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中的值或表達式一定是byte、short、int、char(從jdk1.7開始支持String)
- switch:固定的幾個選項(10個以內)
- 特點 :穿透現象
鍵盤輸入
- 創建鍵盤輸入的對象
Scanner s =new Scanner(System.in); - 調用鍵盤輸入對象的輸入int類型的整數的方法,控制檯會等待用戶輸入
System.out.println(“請輸入一個分數:”);
int score=s.nextInt(); (將鍵盤輸入賦值給 score ) - 隨機數的對象 Random
Random r = new Random();
int score = r.nextInt(3); (隨機一個0~2之間的整數 )
快捷鍵
- 快速多行註釋: ctrl + /
- 快速補充:alt + / 如:
main
、syso
- 快速格式化: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+"次");
}
}