條件判斷
if
條件判斷有以下形式:
// 1.if
if(布爾表達式){
執行語句1;
執行語句2;
執行語句3;
...
}
// 2.if else
if(布爾表達式){
條件語句;
}else{
條件語句2;
}
// 3.else if
if(布爾表達式1){
執行語句塊1;
}else if(布爾表達式2){
執行語句塊2;
}else if(布爾表達式3){
執行語句塊3;
}...
// 4.else if else
if(布爾表達式1){
執行語句塊1;
}else if(布爾表達式2){
執行語句塊2;
}else if(布爾表達式3){
執行語句塊3;
}...
else{
最後的執行語句塊;
}
- 對於java
if
語句只要有一個分支語句執行,整個語句就結束了 - 凡是有
else
的形式都會保證百分百都有分支執行 - 所有
if
語句都可以嵌套,大括號裏的語句須使用縮進, 但也要合理使用,儘量避免嵌套多層 - 只有一個執行語句,大括號可以不寫(不推薦)
天氣示例
判斷天氣->
下雨->
男生:打純色傘
女生:打花傘
天晴->
溫度->
大於30度
男生:戴黑色墨鏡
女生:戴粉色墨鏡
小於30度
什麼也不用幹
另外,儘量保證代碼穩健性,解決用戶非法輸入問題
示例代碼:
public class IfWeather{
public static void main(String[] args){
//打印輸入提示
System.out.println("雨/晴: 1/2");
System.out.println("男/女: 1/2");
//創建一個鍵盤對象
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("weather:");
int weather = s.nextInt();
System.out.print("sex:");
int sex = s.nextInt();
if(weather == 1){
System.out.println("今天天氣是:" + weather);
if(sex == 1){
System.out.println("你是男生,應該帶一把純色傘");
}else if(sex == 2){
System.out.println("你是女生,應該帶一把小花傘");
}else{
System.out.println("你輸了個啥性別?請重新運行程序");
}
}else if(weather == 2){
System.out.print("temp:");
int temp = s.nextInt();
if(temp >= 30){
if(sex == 1){
System.out.println("你是爺們,應該戴黑墨鏡");
}else if(sex == 2){
System.out.println("你是女生,應該戴粉墨鏡");
}else{
System.out.println("你輸的啥性別?請重新運行程序");
}
}else if(temp < 30){
System.out.println("今天天氣很舒服,啥眼鏡也不用帶");
}else{
System.out.println("你輸的啥溫度?請重新運行程序");
}
}else{
System.out.println("你輸的啥天氣?請重新運行程序");
}
}
}
錯誤示例
若只有一行執行語句,大括號是可以省略的,但是注意後面的語句已經不是if
語句塊中的了
public class IfError{
public static void main(String[] args){
if(true) System.out.println("單行if執行語句不用加括號也可以(不推薦)");
if(false)
System.out.println("可以執行"); //實際上等價於上句末加'{',這句末尾加'}',從而結束了if的執行語句
System.out.println("可以執行,不過已經不屬於if執行語句了");
else{ //該行報錯
System.out.println("只有一個else沒有if會報錯");
}
}
}
鍵盤輸入
- 通過調用java基本庫
java.util.Scanner(System.in)
創建鍵盤掃描對,一次創建多次使用 - 通過鍵盤對象的
next
方法接受字符串,非字符串類型會默認轉換成String
類型 - 通過鍵盤對象的
nextInt
方法接受int
,非``int```類型字面值都會報錯 - 類似的還有
nextFloat/nextDouble
等等
public class KeyInput{
public static void main(String[] args){
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("請輸入字符:" ); //不換行
String keyInput = s.next();
//int keyInput = s.next(); //next返回String,int接受失敗
System.out.println("您輸入的內容:" + keyInput);
System.out.print("請輸入整數:" ); //不換行
int num = s.nextInt();
System.out.println("您輸入的整數乘以10:" + (num * 10));
System.out.print("請輸入字符:" ); //不換行
float flt = s.nextFloat();
System.out.println("您輸入的小數:" + flt);
}
}
參考
B站動力節點老杜老師的Java教程(原視頻戳這裏)