JavaSE——流程控制(接收输入Scanner、分支结构(if与switch)、循环结构(while、do-while与for))
第3節 流程控制
一、接收用戶輸入
使用Scanner類來接收用戶的輸入。
新建一個Scanner對象:Scanner input = new Scanner(System.in);
input可以接收各種數據類型的輸入:比如nextInt、nextByte等,但是這樣不太安全,因為如果輸入了別的類型的數據,代碼就會直接報錯;
所以比較常用的是next()和nextLine(),它們都返回的是String類型;
-
其中next會從第一個不為空格的字符開始接收,然后遇到空格或換行符結束接收;
-
nextLine會接收一整行內容,直到遇到換行符結束接收;
-
注意不要同時使用next和nextLine,會得不到想要的結果。
結果如下:
請輸入next接收的內容:24dg 78tyu 24dg import java.util.Scanner;public class input {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("請輸入nextLine接收的內容:");String str2 = input.nextLine();System.out.println(str2);} }結果如下:
請輸入nextLine接收的內容:ud78 56dgy__@#$ !~ud78 56dgy__@#$ !~二、執行結構
1996 年, 計算機科學家 Bohm 和 Jacopini 證明了: 任何簡單或復雜的算法都可以由順序結構、 分支結構和循環結構這三種基本結構組合而成。它們的共同點是都包含一個入口和一個出口, 它們的每個代碼都有機會被執行, 不會出現死循環。-
順序結構 :一種基本的控制結構,按照語句出現的順序執行操作;
-
分支結構 :又稱為選擇結構,根據條件成立與否來執行操作;
-
循環結構 :一種重復結構,如果條件成立,它會重復執行某一循環體,直到出現不滿足的條件為止。
三、分支結構
3.1 if條件語句
if 條件結構是根據條件判斷之后再做處理
-
if(條件語句){…}
-
if (條件語句){…}else{…}
-
if (條件語句){…}else if(條件語句){…}
-
if (條件語句){…}else if(條件語句){…}else{…}
例子: 用戶輸入學生成績, 判斷成績是否及格, 判斷條件為 優良: > 90、 良好: 81-90、 中: 60-80、 不及格: <60
import java.util.Scanner;public class ifelse {public static void main(String[] args) {System.out.println("請輸入考試成績:");Scanner input = new Scanner(System.in);int s = input.nextInt();if(s >= 120 || s < 0) {System.out.println("輸入成績有誤!");}else if(s >= 90) {System.out.println("成績優秀!");}else if(s >= 80) {System.out.println("成績良好!");}else if(s >= 70) {System.out.println("成績合格!");}else {System.out.println("成績不合格!");}} }3.2 switch語句
switch(表達式){ case 取值 1: 語句塊 1;break; case 取值 n: 語句塊 n;break; default: 語句塊 n+1;break; }switch 語句有關規則
-
表達式的返回值必須是下述幾種類型之一: int, byte, char, short,String;
-
case 子句中的取值必須是常量, 且所有 case 子句中的取值應是不同的;
-
default 子句是可選的;
-
break 語句用來在執行完一個 case 分支后使程序跳出 switch 語句塊; 如果 case 后面沒有寫 break 則直接往下面執行!
-
case 后面的執行體可寫{ }也可以不寫{ }
例題: 多分支月份輸出天數(充分利用語句特性)
import java.util.Scanner;public class switchcase {public static void main(String[] args) {System.out.println("請輸入一個月份(1-12):");Scanner input = new Scanner(System.in);String text = input.next();switch (text) {case "1":case "2":case "3":System.out.println("春季");break;case "4":case "5":case "6":System.out.println("夏季");break;case "7":case "8":case "9":System.out.println("秋季");break;case "10":case "11":case "12":System.out.println("冬季");break;default:System.out.println("輸入月份有誤!");break;}} }四、循環結構
**循環語句功能 **
????在循環條件滿足的情況下, 反復執行特定代碼
**循環語句分類 **
-
for 循環
-
while 循環
-
do/while 循環
4.1 while循環語句
符合條件, 循環繼續執行; 否則, 循環退出
特點: 先判斷, 再執行
語法:
while(條件表達式){ //語句塊; }使用 while 循環的步驟
1、 分析循環條件和循環操作
2、 套用 while 語法寫出代碼
3、 檢查循環是否能夠退出
實現示例:
錄入班級人數和學員成績, 計算班級學員的平均成績
import java.util.Scanner;public class whiledemo {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("請輸入班級總人數");//使用變量studentNum記錄班級總人數int studentNum = input.nextInt();//用于記錄循環的次數,以及控制循環何時結束int i = 0;//定義變量sum,用于統計總分數int sum = 0;while(i < studentNum) {i++;System.out.println("請輸入第"+i+"個學生的成績:");int s = input.nextInt();sum += s;}System.out.println("學生的平均成績為:"+sum/studentNum);} }4.2 do-while循環語句
先執行一遍循環操作, 符合條件, 循環繼續執行; 否則, 循環退出
特點: 先執行, 再判斷
語法:
do { //循環操作 }while ( 條件表達式 );**while 循環和 do-while 循環的區別? **
-
while:先判斷條件, 如果條件滿足, 再執行循環操作
-
do while:先執行一遍循環操作, 然后再判讀條件, 如果條件滿足, 繼續執行循環操作。
4.3 for循環語句
語法:
for(初始化參數; 判斷條件; 更新循環變量){ //循環體; }4.4 break與continue
break是用于終止本輪所有次循環,即不執行本次循環中break后面的語句,直接退出循環;
continue是用于終止本輪本次循環,即本次循環中continue后面的代碼不執行,進行下一次循環的入口判斷。
4.5 如何退出多重循環
在要退出到的地方起個別名,然后break XXX;
public class exit_many_xunhuan {public static void main(String[] args) {haha:for(int i=0;i<10;i++) {for(int j=0;j<10;j++) {System.out.println("i="+i+" , j="+j);if (i==5 && j==5) {break haha;}}}} }補充:如何判斷用戶輸入類型
import java.util.Scanner;public class panduan_input_leixing {public static void main(String[] args) {System.out.println("請輸入一個數字:");Scanner input = new Scanner(System.in);//在接收輸入之前判斷輸入的類型是否為intif(input.hasNextInt()) {int num = input.nextInt();System.out.println("你輸入的是:"+num);}else {System.out.println("你輸入的類型不是int");}} }總結
以上是生活随笔為你收集整理的JavaSE——流程控制(接收输入Scanner、分支结构(if与switch)、循环结构(while、do-while与for))的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用opencv对图像和检测框做任意角度
- 下一篇: Java特性之多态的理解