1. 程式人生 > 實用技巧 >JAVA的學習日記7

JAVA的學習日記7

Java流程控制

Scanner物件

之前學的基本語法中並沒有實現程式和人的互動,但是Java提供了這樣一個工具類,可以獲取使用者的輸入。java.util.ScannerJava5的新特徵,我們可以通過Scanner類來獲取使用者輸入

  • 基本語法
    Scanner s = new Scanner(System.in);

  • 通過Scanner類的next()nextline()方法獲取輸入的字串,在讀取前一般需要使用hasNext()hasNextLine()判斷是否還有輸入的資料

Next的用法

package com.cdoudou.scanner;

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {

        //建立一個掃描器物件,用於接收鍵盤資料
        Scanner scanner = new Scanner(System.in);
        System.out.println("用next的方式接受");

        //判斷使用者有沒有輸入字串
        if(scanner.hasNext()){
            //使用next接收
            String str = scanner.next();
            System.out.println("輸出內容為:"+str);
        }

        //注意使用完要注意關掉  凡是從屬於IO流的類,如果使用完不關閉會一直佔用資源
        scanner.close();
    }
}

NextLine()用法

package com.cdoudou.scanner;

import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("使用nextLine接收字串:");

        if(scanner.hasNextLine()){
            String str = scanner.nextLine();
            System.out.println("接受的內容為:"+str);
        }
        scanner.close();


//        int sum = 0;
//        for (int i = 0; i < 10; i++) {
//            sum += i;
//            if(i % 3 == 0){
//                break;
//            }
//        }
//        System.out.println(sum);
    }
}

Next()和NextLine()的區別

next()

  • 1.一定要讀取到有效字元後才可以結束輸入
  • 2.對輸入有效字元之前遇到的空白,next()方法會自動將其去掉
  • 3.只有輸入有效字元後才將其後面輸入的空白作為分隔符或者結束符
  • 4.next()不能得到帶有空格的字串

nextLine()

  • 1.以Enter為結束符,也就是說nextLine()方法返回的是輸入回車之前的所有字元
  • 2.可以獲得空白

也可以輸入中文


package com.cdoudou.scanner;

import java.util.Scanner;

public class Demo03 {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("使用nextLine接收字串:");

        String str = scanner.nextLine();
        System.out.println("接受的內容為:"+str);
        scanner.close();
        /*
        *   使用nextLine接收字串:
            可以輸入中文的
            接受的內容為:可以輸入中文的
        * */
    }
}

順序結構

  • Java的基本結構就是順序結構,除非特別指明,否則就按照順序一句一句執行
  • 順序結構是最簡單的演算法結構
  • 語句與語句之間,框與框之間是按從上到下的順序執行的,它是由若干個依次執行的處理步驟組成的,它是任何一個演算法都離不開的一種基本演算法結構
  • 因為是經常寫,所以可能會忘記有這麼一個結構
package com.cdoudou.struct;

public class orderDemo1 {
    public static void main(String[] args) {
        //順序結構
        System.out.println("hello1");
        System.out.println("hello2");
        System.out.println("hello3");
        System.out.println("hello4");
    }
}

選擇結構

  • if單選擇結構
  • if雙選擇結構
  • if多選擇結構
  • 巢狀的if結構
  • switch多選擇結構

if單選擇結構

  • 很多時候需要去判斷一個東西是否可行,然後才去執行,這樣一個過程在程式中用if語句來表示
  • 語法:
if(布林表示式){
      //如果布林表示式為true將執行的語句
}

package com.cdoudou.struct;

import java.util.Scanner;

public class ifDemo01 {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        
        //equals():用來比較字串是否相等
        if(str.equals("hello")){
            System.out.println("world");
        }
        System.out.println("end");

        scanner.close();
    }
}

if雙選擇結構

  • 語法:
if(布林表示式){
      //如果布林表示式的值為true
}else{
      //如果布林表示式的值為false
}

package com.cdoudou.struct;

import java.util.Scanner;

public class ifDemo02 {
    public static void main(String[] args) {

        //考試分數如果大於60就是及格,否則為不及格
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入成績:");
        int score = scanner.nextInt();
        if(score > 60){
            System.out.println("及格");
        }else{
            System.out.println("不及格");
        }

        scanner.close();

    }
}

if多選擇結構

  • 語法:
if(布林表示式1){
      //如果布林表示式1的值為true,執行程式碼
}else if(布林表示式2){
      //如果布林表示式2的值為true,執行程式碼
}else if(布林表示式3){
      //如果布林表示式3的值為true,執行程式碼
}else{
      //如果以上的布林表示式的值都不為true,執行程式碼
}

package com.cdoudou.struct;

import java.util.Scanner;

public class ifDemo03 {
    public static void main(String[] args) {

        //考試分數如果大於60就是及格,否則為不及格
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入成績:");
        int score = scanner.nextInt();
        if(score == 100){
            System.out.println("滿分");
        }else if(score < 100 && score >= 90){
            System.out.println("優秀");
        }else if(score < 90 && score >= 80){
            System.out.println("良好");
        }else if(score < 80 && score >= 60){
            System.out.println("及格");
        }else{
            System.out.println("不及格");
        }

        scanner.close();
    }
}

巢狀的if結構

  • 使用巢狀的if...else語句是合法的,也就是說可以在另一個if或者else if語句中使用if或者else if語句。可以像if語句一樣巢狀else if...else
  • 語法:
if(布林表示式1){
      //如果布林表示式1的值為true,執行程式碼
      if(布林表示式2){
            //如果布林表示式2的值為true,執行程式碼
            
      }
}
加油!!!