if單選擇結構
- 我們很多時候需要去判斷一個東西是否可行,然後我們纔去執行,這樣一個過程在程序中用if語句來表示
- 語法
if(布爾表達式){
//如果布爾表達式爲true就執行
}
- 流程圖
- 示例
public class IfDemo {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("請輸入內容:");
String str=scanner.nextLine();
//equals:判斷字符串是否相等
if(str.equals("Hello")){
System.out.println(str);
}
System.out.println("END");
scanner.close();
}
}
if雙選擇結構
- 那現在有個需求,公司要收購一個軟件,成功了,給人支付100萬元,失敗了,自己找人開發。這樣的需求用一個if就搞不定了,我們需要兩個判斷,需要一個雙選擇結構,所有就有了if-else結構。
- 語法
if(布爾表達式){
//表達式爲true執行
}else{
//表達式爲false執行
}
- 流程圖
- 示例
public class IfDemo2 {
public static void main(String[] args) {
//考試分數大於60就是及格,小於60就是不及格
Scanner scanner=new Scanner(System.in);
System.out.println("請輸入考試分數:");
double num=scanner.nextDouble();
if(num>60){
System.out.println("考試及格,分數爲:"+num);
}else{
System.out.println("考試不及格,分數爲:"+num);
}
}
}
if多選擇結構
- 我們發現剛纔的代碼不符合實際情況,真是的情況還可能存在ABCD,存在區間多級判斷。比如90-100就是A,80-90就是B…等等,在生活中我們還有很多時候的選擇也不僅僅只有兩個,所有我們需要一個多選擇結構來處理這類問題!
- 語法
if (布爾表達式1) {
//如果布爾表達式1的值爲true執行代碼
} else if (布爾表達式2) {
//如果布爾表達式2的值爲true執行代碼
} else if (布爾表達式3) {
//如果布爾表達式3的值爲true執行代碼
} else {
//如果以上布爾表達式的值都不爲true執行代碼
}
- 流程圖
- 示例
public class IfDemo3 {
public static void main(String[] args) {
//考試分數大於60就是及格,小於60就是不及格
Scanner scanner=new Scanner(System.in);
System.out.println("請輸入考試分數:");
double num=scanner.nextDouble();
/*
if語句最多有一個else,else 語句在所有的else if語句之後。
if語句可以有若干else if語句,它們必須在else語句之前。
一旦其中一個else if語句檢測爲true,其他的else if以及else語句都將跳過。
*/
if(num==100){
System.out.println("恭喜滿分");
}else if(num<100 && num>=90){
System.out.println("A");
}else if(num<90 && num>=80){
System.out.println("B");
}else if(num<80 && num>=70){
System.out.println("C");
}else if(num<70 && num>=60){
System.out.println("D");
}else if(num>0 && num<60){
System.out.println("成績不及格");
}else{
System.out.println("成績不合法");
}
}
}
嵌套if結構
- 使用嵌套if…else 語句是合法的。也就是說你可以在另外一個if或者else if語句中使用if或者else if語句。你可以像if語句一樣嵌套else if…else。
- 語法
if(表達式1){
//表示式1爲true就執行
if(表達式2){
//表示式2爲true就執行
}
}
- 示例
public class IfDemo4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入1-100裏的整數:");
int num=scanner.nextInt();
if(num<=100 && num>=1){
if(num%1==0){
System.out.println(num);
}
}else{
System.out.println("輸入的整數不合法");
}
}
}
switch多選擇結構
-
多選擇結構還有一個實現方式就是switch case語句。
-
switch case 語句判斷一個變量與一系列值中某個值是否相等,每一值稱爲一個分支。
-
switch 語句中的變量類型可以是:
1. byte、short、int或者char。
2. 從Java SE 7開始
3. switch 支持字符串String類型了
4. 同時case標籤必須爲字符串常量或字面量。 -
語法
-
示例
public class SwitchDemo {
public static void main(String[] args) {
char grade = 'C';
/*
switch匹配一個具體的值,執行匹配case的裏面的語句,如果沒有break語句,就會繼續執行下面語句,直到執行完畢或者有break語句了爲止。
每一個case裏面後面執行的語句記得 帶上break,不然會出現case穿透。
如果沒有匹配到case的值,就會執行default下面的語句。
*/
switch (grade) {
case 'A':
System.out.println("A");
break; //可選 終止switch
case 'B':
System.out.println("B");
break;
case 'C':
System.out.println("C");
break;
case 'D':
System.out.println("D");
break;
default: //可選
System.out.println("未知");
}
}
}
public class SwitchDemo2 {
public static void main(String[] args) {
String name="張三";
//JDK7的新特性,表達式結果可以是字符串!!!
//字符的本質還是數字
//反編譯 java--class(字節碼)---反編譯(IDEA)
switch (name){
case "李四":
System.out.println("name是李四");
break;
case "張三":
System.out.println("name是張三");
break;
default:
System.out.println("找不到name");
}
}
}