Java學習之路:流程控制

2022-10-11 10:58:41
前言本文開始流程控制方面的學習 , 主要包括用戶交互和流程控制語句,適合新手學習 。
1 用戶交互Scanner1.1 Scanner對象Java提供了一個可以獲取用戶輸入的Scanner工具類
基本語法:
Scanner s = new Scanner(System.in);
通過Scanner類的next()nextLine()方法獲取輸入的字符串,讀取之前使用hasNext()hasNextLine()判斷是否還有輸入的數據 。
next()nextLine()方法代碼示例:
public class Demo01 {public static void main(String[] args) {//創建一個掃描器對象 , 用于接收鍵盤數據Scanner scanner = new Scanner(System.in);System.out.println("使用next方式接收:");//判斷用戶有沒有輸入字符串if (scanner.hasNext()==true){//使用next方式接收String str = scanner.next();System.out.println("輸出的內容為:"+str);}//凡是屬于IO流的類 , 如果不關閉會一直占用資源,要養成良好習慣,用完就關scanner.close();}}結果:
使用next方式接收:hello world輸出的內容為:hello【注意】:無法輸出空格之后的數據

  • 一定要讀取到有效字符后才可以結束輸入
  • 對輸入有效字符之前遇到的空白,next()方法會自動將其去掉
  • 只有輸入有效字符才將其后面輸入的空白作為分隔符或者結束符
  • next()不能得到帶有空格的字符串
hasNext()hasNextLine()方法代碼示例:
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();}}結果:
使用nextLine方式接收:hello world輸出的內容為hello world
  • 以enter為結束符
  • 可以獲取空格
hasNextInt()hasNextFloat() 方法示例:
import java.util.Scanner;public class Demo03 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);//從鍵盤接收數據int i = 0;float f = 0.0f;System.out.println("請輸入整數:");if (scanner.hasNextInt()){i = scanner.nextInt();System.out.println("整數數據:"+i);}else{System.out.println("輸入的不是整數數據!");}System.out.println("請輸入小數:");if (scanner.hasNextFloat()){f = scanner.nextFloat();System.out.println("小數數據:"+f);}else{System.out.println("輸入的不是小數數據!");}scanner.close();}}結果:
請輸入整數:10整數數據:10請輸入小數:0.6小數數據:0.61.2 Scanner進階【練習題】:輸入多個數字,并求其總和與平均數,每輸入一個數字用回車確認,通過輸入非數字來結束輸入并輸出執行結果
import java.util.Scanner;public class Demo01 {public static void main(String[] args) {//輸入多個數字,并求其總和與平均數,每輸入一個數字用回車確認,通過輸入非數字來結束輸入并輸出執行結果Scanner scanner = new Scanner((System.in));//從鍵盤接收數據double sum = 0;//計算輸入了多少個數字int m = 0;System.out.println("請輸入數據:");//通過循環判斷是否還有輸入 , 并在里面對每一次進行求和和統計while (scanner.hasNextDouble()){double x = scanner.nextDouble();m = m + 1; //m++sum = sum + x;System.out.println("你輸入了第"+m+"個數據,當前結果sum="+sum);}System.out.println(m + "個數的和為" + sum);System.out.println(m + "個數的平均數為" + (sum / m));scanner.close();}}結果:
請輸入數據:10你輸入了第1個數據,當前結果sum=10.022你輸入了第2個數據 , 當前結果sum=32.0222你輸入了第3個數據,當前結果sum=254.0X3個數的和為254.03個數的平均數為84.66666666666667【注意】對msum需要在全局上指定數據類型和初值,不能只在while局部里面賦初值,否則程序在輸出時候會報錯 。
Java學習之路:流程控制

文章插圖
2 順序結構語句與語句之間,框與框之間是按從上到下的順序進行的 , 由若干個依次執行的處理步驟組成的 , 是任何一個算法都離不開的一種基本算法結構 。
Java學習之路:流程控制

文章插圖
3 選擇結構3.1 if但選擇結構判斷一個事情是否可行,然后才去執行,這樣一個過程在程序中用if語句來表示 。
語法:
if (布爾表達式){//如果布爾表達式為true將執行的語句}

推薦閱讀