天天看點

初識Java之條件控制篇

和Python語言一樣Java也有條件循環,當然這裡我通常那個叫做流程控制與語言結構。簡單的來說有順序控制,條件控制,循環控制

條件控制語句

if else.if else 語句

我們首先來看代碼

package 條件循環;

public class 條件判斷 {
    public static void main(String[] args) {
        printGrade(76.5);
    }

    public static void printGrade(double score) {
        if (score >= 90.0) {
            System.out.println('A');
        }
        else if (score >= 80.0) {
            System.out.println('B');
        }
        else if (score >= 70.0) {
            System.out.println('C');
        }
        else if (score >= 60.0) {
            System.out.println('D');
        }
        else {
            System.out.println('F');
        }
    }
}      

通過上面我們發現,條件語句和Python似像非像,大體的思想是差不多的,隻是他們的寫法不同。

if(布爾表達式)
{
   //如果布爾表達式為true将執行的語句
}      

如果布爾表達式的值為 true,則執行 if 語句中的代碼塊,否則執行 if 語句塊後面的代碼。

多個條件判斷的時候,我們需要注意的是和Python不同,Python裡面有if elif,else,但是Java裡面是這個if else if else 這三個控制語句 ,而且對于條件循環的時候,我們的語言寫法也是和Python不一樣的,但實際上每一個程式設計的思想邏輯還是差不多的。

對于條件語句我這裡詳細的介紹一下他的邏輯規則,在Python中我們可能有些童鞋沒有完全的了解到這個概念,下面我就針對Java來做一些介紹:

首先if語句裡面的判斷如果執行成功了,那麼後面的條件語句都不會執行,對于else if 如果有一個執行成功了,那麼後面的也就不會執行了,這裡我們了解為單一性,除非我們有嵌套的條件語句,不然是不會執行多個代碼的。

條件嵌套

package 條件循環;

public class 條件語句 {
    public static void main(String[]args){
        int x =30;
        if (x==0){
            System.out.println("yes!");
        }else if (x<=25){
            ++x;
            int y=x*10;
            System.out.println(y);
        }else if (x<=35){
            System.out.println("hello!");
            if (x==30){
                int n=x*x;
                System.out.println(n);
            }
        }else {
            System.out.println("錯誤!");
        }
    }
}      

這裡我們首先給出了一個值,把這個值放在條件語句裡面進行一系列判斷,這個裡面涉及到條件嵌套的方法,最後我們輸出了自己想要的值。

初識Java之條件控制篇

其實Java的條件語句不是很難,隻是寫法有一些不一樣,我覺得比較不好處理的還是一些屬性的問題,比如一個程式的類,你要怎樣去定義他們的方法和如何去選擇他們的範圍,雖然我們經常用static來修飾靜态變量,但是我們這些東西還是必修的課程,隻有把方法的類了解了,你才能寫的出!!

這裡我們要注意的是if後面可以不加大括号,但是可讀性比較差,這裡要了解一下,如果每加括号也不是不可以運作的。

switch語句

這個語句在Python的學習裡面是沒有的,它在c裡面是經常出現的,當然在Java裡面也是有的,那麼什麼是switch語句呢?

switch case 語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支。

在條件判斷裡面如果我們有多條判斷語句,他們的格式是一樣的,知識條件的不同,如果取用if來寫會顯得比較的臃腫,這個是switch語句就比較的實用了。

switch case語句的規則

switch 語句中的變量類型可以是: byte、short、int 或者 char。從 Java SE 7 開始,switch 支援字元串 String 類型了,同時 case 标簽必須為字元串常量或字面量。

switch 語句可以擁有多個 case 語句。每個 case 後面跟一個要比較的值和冒号。

case 語句中的值的資料類型必須與變量的資料類型相同,而且隻能是常量或者字面常量。

當變量的值與 case 語句的值相等時,那麼 case 語句之後的語句開始執行,直到 break 語句出現才會跳出 switch 語句。

當遇到 break 語句時,switch 語句終止。程式跳轉到 switch 語句後面的語句執行。case 語句不必須要包含 break 語句。如果沒有 break 語句出現,程式會繼續執行下一條 case 語句,直到出現 break 語句。

switch 語句可以包含一個 default 分支,該分支一般是 switch 語句的最後一個分支(可以在任何位置,但建議在最後一個)。default 在沒有 case 語句的值和變量值相等的時候執行。default 分支不需要 break 語句。      

switch case 執行時,一定會先進行比對,比對成功傳回目前 case 的值,再根據是否有 break,判斷是否繼續輸出,或是跳出判斷

package 條件循環;
import java.util.Scanner;
public class switch語句 {
    public static void main(String args[]){
        //char grade = args[0].charAt(0);
        Scanner in = new  Scanner(System.in);//定義scanner,等待輸入
        System.out.println("輸入你的等級:");
        String s=in.next();
        char grade=s.charAt(0);
//        char grade = 'A';

        switch(grade)
        {
            case 'A' :
                System.out.println("優秀");
                break;
            case 'B' :
            case 'C' :
                System.out.println("良好");
                break;
            case 'D' :
                System.out.println("及格");
                break;
            case 'F' :
                System.out.println("你需要再努力努力");
                break;
            default :
                System.out.println("未知等級");
        }
        System.out.println("你的等級是 " + grade);
    }
}      

擴充 如何進行輸入語句(Python裡面是input())

package first;
import java.util.Scanner;
 
public class Input {
 
  public static void main(String[] args) {
    Scanner in = new Scanner(System.in);//定義scanner,等待輸入
    System.out.println("請輸入你的姓名:");
    String name = in.nextLine();//字元類型的輸入方式
    System.out.println(name);
    System.out.println("請輸入你的年齡:");
    int age = in.nextInt();//整數類型的輸入方式
    System.out.println(age);
    System.out.println("請輸入蘋果的英文:");
    //String s = in.next();
        in.nextLine(); //吃掉回車符
    String s = in.nextLine();
    System.out.println(s);
    System.out.println("請輸入你的身高:");
    double height = in.nextDouble();//小數類型的輸入方式
    System.out.println(height);
    
  }
 
}      

這個裡面詳解了輸入資料的方法,首先要引入一個類,而且在Java裡面輸入資料,并不是那麼簡單,還需要考慮很多的東西,比如資料的類型是否一緻,等等

初識Java之條件控制篇

總結

在switch語句裡面首先就是switch(變量){

case 條件:

執行語句

break

//如果這裡恰好執行成功也就是判斷成功,那麼就不會運作後面的條件判斷了,如果不成功就會繼續比對。這裡有幾個點需要強調的如果有break就會跳出循環,這是正常的,但是如果沒有break那就會一直執行成功語句後面的是以代碼結果,直到遇見break語句才會停止。這個是需要注意的

}

package 條件循環;

public class break存在 {
    public static void main(String args[]){
        int i = 1;
        switch(i){
            case 0:
                System.out.println("0");
            case 1:
                System.out.println("1");
            case 2:
                System.out.println("2");
            case 3:
                System.out.println("3"); break;
            default:
                System.out.println("default");
        }
    }
}      
初識Java之條件控制篇

如果在代碼裡面根本就沒有遇見break語句,而且沒有比對到正确的條件,那麼就一直比對最後傳回預設的default,也就是最後一個結果。

package 條件循環;

public class 沒有break {
    public static void main(String[]args){
        int a=10;
        switch (a){
            case 0:
                System.out.println(0);
            case 1:
                System.out.println(1);
            case 2:
                System.out.println(2);
            default:
                System.out.println("沒有找到!!!!");
        }
    }
}      
初識Java之條件控制篇

注意break的寫法與位置是需要注意的

switch在實際的程式設計裡面其實不是很常用,大部分使用的還是while for循環這些控制循環語句

我們下期文章介紹一下關于循環控制

每文一語