java 控制语句、数组、方法
一、控制語句
1、if 語句
if語句是指如果滿足某種條件,就進行某種處理。
流程圖:
2、?if…else語句
語法格式:
if (判斷條件){ 執(zhí)行語句1 …… }else{ 執(zhí)行語句2 …… }流程圖:
3、?if…else if…else語句
?語法格式:
if (判斷條件1) {執(zhí)行語句1 } else if (判斷條件2) {執(zhí)行語句2 } ... else if (判斷條件n) {執(zhí)行語句n } else {執(zhí)行語句n+1 }流程圖:
4、?循環(huán)語句while
?語法結構:
while(循環(huán)條件){ 執(zhí)行語句 ……… }當循環(huán)條件為true時,循環(huán)體就會執(zhí)行。循環(huán)體執(zhí)行完畢時會繼續(xù)判斷循環(huán)條件,如條件仍為true則會繼續(xù)執(zhí)行,直到循環(huán)條件為false時,整個循環(huán)過程才會結束。
?
如果循環(huán)條件直接賦值true,則會變成死循環(huán):
while(true){ 執(zhí)行語句 ……… }?5、循環(huán)語句 for
for(初始化表達式; 循環(huán)條件; 操作表達式){執(zhí)行語句……… }接下來分別用①表示初始化表達式、②表示循環(huán)條件、③表示操作表達式、④表示循環(huán)體,通過序號來具體分析for循環(huán)的執(zhí)行流程。
for(① ; ② ; ③){④ } 第一步,執(zhí)行① 第二步,執(zhí)行②,如果判斷結果為true,執(zhí)行第三步,如果判斷結果為false,執(zhí)行第五步 第三步,執(zhí)行④ 第四步,執(zhí)行③,然后重復執(zhí)行第二步 第五步,退出循環(huán)死循環(huán)格式:for(;;){}
?
6、?循環(huán)語句do…while
?語法結構:
do { 執(zhí)行語句 ……… } while(循環(huán)條件);流程圖:
先運行執(zhí)行語句,當循環(huán)條件為true時,執(zhí)行語句循環(huán)執(zhí)行,直到循環(huán)條件為false時,整個循環(huán)過程才會結束。
7、?選擇結構switch
switch 條件語句也是一種很常用的選擇語句,它和if條件語句不同,它只能針對某個表達式的值作出判斷,從而決定程序執(zhí)行哪一段代碼。
語法結構:
switch (表達式){case 目標值1:執(zhí)行語句1break;//停止循環(huán),如果沒有break還會繼續(xù)向下執(zhí)行case 目標值2:執(zhí)行語句2break;......case 目標值n:執(zhí)行語句nbreak;default: //如果之前的目標值都沒有匹配,執(zhí)行語句n+1執(zhí)行語句n+1break; }在上面的格式中,switch語句將表達式的值與每個case中的目標值進行匹配,如果找到了匹配的值,會執(zhí)行對應case后的語句,如果沒找到任何匹配的值,就會執(zhí)行default后的語句。
?
注意:在switch語句中的表達式只能是byte、short、char、int類型的值,如果傳入其它類型的值,程序會報錯.
在JDK7.0中也引入了新特性,switch語句可以接收一個String類型的值。
8、?循環(huán)嵌套
?while、do…while、for循環(huán)語句都可以進行嵌套,并且它們之間也可以互相嵌套,如最常見的在for循環(huán)中嵌套for循環(huán)
for(初始化表達式; 循環(huán)條件; 操作表達式) {………for(初始化表達式; 循環(huán)條件; 操作表達式) {執(zhí)行語句………}……… }9、跳轉語句(break、continue)
?break語句
它出現在循環(huán)語句中,作用是跳出循環(huán)語句,執(zhí)行后面的代碼。
當break語句出現在嵌套循環(huán)中的內層循環(huán)時,它只能跳出內層循環(huán),如果想使用break語句跳出外層循環(huán)則需要對外層循環(huán)添加標記。
public class BreakDemo02 {public static void main(String[] args) {int i, j; // 定義兩個循環(huán)變量aaa: for (i = 1; i <= 9; i++) { // 外層循環(huán)for (j = 1; j <= i; j++) { // 內層循環(huán)if (i > 4) { // 判斷i的值是否大于4break aaa; // 跳出外層循環(huán) }System.out.print("*"); // 打印* }System.out.print("\n"); // 換行 }} }?continue語句
continue語句用在循環(huán)語句中,它的作用是終止本次循環(huán),執(zhí)行下一次循環(huán)。
//練習對1~100之內的奇數求和 public class ContinueDemo {public static void main(String[] args) {int sum = 0; // 定義變量sum,用于記住和for (int i = 1; i <= 100; i++) {if (i % 2 == 0) { // i是一個偶數,不累加continue; // 結束本次循環(huán) }sum += i; // 實現sum和i的累加 }System.out.println("sum = " + sum);} }二、引用數據類型
引用數據類型的使用步驟:
數據類型 ?變量名 ?= ?new 數據類型();
每種引用數據類型都有其功能,我們可以調用該類型實例的功能。
變量名.方法名();
?1、Scanner類
?Scanner類是引用數據類型的一種,我們可以使用該類來完成用戶鍵盤錄入,獲取到錄入的數據。
?Scanner使用步驟:
導包:import?java.util.Scanner;
創(chuàng)建對象實例:Scanner sc = new Scanner(System.in);
調用方法:
int ?i = sc.nextInt();?//用來接收控制臺錄入的數字
String s = sc.next();?//用來接收控制臺錄入的字符串
?2、Random類
這個Random類,用來產生隨機數,它可以產生多種數據類型的隨機數,
public int nextInt(int maxValue) //產生[0,maxValue)范圍的隨機整數,包含0,不包含maxValue; public double nextDouble() //產生[0,1)范圍的隨機小數,包含0.0,不包含1.0Random?使用步驟::
?import導包:所屬包java.util.Random??
?創(chuàng)建實例格式:Random 變量名 = new Random();
?例:
import java.util.Random;public class RandomDemo {public static void main(String[] args) {// 創(chuàng)建Random類的實例Random r = new Random(); // 得到0-100范圍內的隨機整數,將產生的隨機整數賦值給i變量int i = r.nextInt(100); //得到0.0-1.0范圍內的隨機小數,將產生的隨機小數賦值給d變量double d = r.nextDouble(); System.out.println(i); System.out.println(d); } }?三、數組
1、定義格式:
數據類型[ ] 數組名 = new??數據類型?[元素個數或數組長度];
數組的靜態(tài)初始化有兩種方式:
1、類型[] 數組名 = new 類型[]{元素,元素,……}; 2、類型[] 數組名 = {元素,元素,元素,……};2、數組遍歷
在操作數組時,經常需要依次訪問數組中的每個元素,這種操作稱作數組的遍歷。
public class ArrayDemo04 {public static void main(String[] args) {int[] arr = { 1, 2, 3, 4, 5 }; // 定義數組// 使用for循環(huán)遍歷數組的元素for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]); // 通過索引訪問元素1,2,3,4,5 }} }3、?數組的常見問題
數組最值
public class ArrayDemo05 {public static void main(String[] args) {int[] arr = { 4, 1, 6, 3, 9, 8 }; // 定義一個數組 int max = arr[0]; // 定義變量max用于記住最大數,首先假設第一個元素為最大值// 下面通過一個for循環(huán)遍歷數組中的元素for (int x = 1; x < arr.length; x++) {if (arr[x] > max) { // 比較 arr[x]的值是否大于maxmax = arr[x]; // 條件成立,將arr[x]的值賦給max }}System.out.println("max=" + max); // 打印最大值 } }?
數組異常
1>數組越界異常
每個數組的索引都有一個范圍,即0~length-1。在訪問數組的元素時,索引不能超出這個范圍,否則程序會報錯
1public class ArrayDemo06 {2 public static void main(String[] args) {3 int[] arr = new int[4]; // 定義一個長度為4的數組4 System.out.println("arr[0]=" + arr[4]); // 通過角標4訪問數組元素5 }6}?運行結果:
現這個異常的原因是數組的長度為4,其索引范圍為0~3,而上述代碼中的第4行代碼使用索引4來訪問元素時超出了數組的索引范圍。
?2>空指針異常
在使用變量引用一個數組時,變量必須指向一個有效的數組對象,如果該變量的值為null,則意味著沒有指向任何數組,此時通過該變量訪問數組的元素會出現空指針異常
?
1public class ArrayDemo07 {2 public static void main(String[] args) {3 int[] arr = new int[3]; // 定義一個長度為3的數組4 arr[0] = 5; // 為數組的第一個元素賦值5 System.out.println("arr[0]=" + arr[0]); // 訪問數組的元素6 arr = null; // 將變量arr置為null7 System.out.println("arr[0]=" + arr[0]); // 訪問數組的元素8 }9}運行結果:
通過上圖所示的運行結果可以看出,上述代碼中第4、5行代碼都能通過變量arr正常地操作數組。第6行代碼將變量置為null,當第7行代碼再次訪問數組時就出現了空指針異常NullPointerException。
?4、二維數組
?二維數組的定義方式:
/*第一種方法*/ int[][] arr = new int[3][4];//相當于定義了一個3*4的二維數組,3個長度是4的一維數組 /*第二種方法*/ int[][] arr = new int[3][];//和第一種類似,只是數組中每個元素的長度不確定 /*第三種方法*/ int[][] arr = {{1,2},{3,4,5,6},{7,8,9}};//直接賦值?
?二維數組元素遍歷:兩個for循環(huán)內嵌
?數組元素累加和:利用遍歷相加
?例:接下來通過一個案例來熟悉二維數組的使用。
例如要統(tǒng)計一個公司三個銷售小組中每個小組的總銷售額以及整個公司的銷售額。如下所示
l?第一小組銷售額為{11, 12}萬元
l?第二小組銷售額為{21, 22, 23}萬元
l?第三小組銷售額為{31, 32, 33, 34}萬元。
?
1public class ArrayDemo10 {2 public static void main(String[] args) {3 int[][] arr = new int[3][]; // 定義一個長度為3的二維數組4 arr[0] = new int[] { 11, 12 }; // 為數組的元素賦值5 arr[1] = new int[] { 21, 22, 23 };6 arr[2] = new int[] { 31, 32, 33, 34 };7 8 int sum = 0; // 定義變量記錄總銷售額9 for (int i = 0; i < arr.length; i++) { // 遍歷數組元素10 int groupSum = 0; // 定義變量記錄小組銷售總額11 for (int j = 0; j < arr[i].length; j++) { // 遍歷小組內每個人的銷售額12 groupSum = groupSum + arr[i][j];13 }14 sum = sum + groupSum; // 累加小組銷售額15 System.out.println("第" + (i + 1) + "小組銷售額為:" + groupSum + " 萬元");16 }17 System.out.println("總銷售額為: " + sum + " 萬元");18 }19}?
?運行結果:
?
?例2:游戲操作如下:
l?后臺預先生成一個1-100之間的隨機數,用戶鍵盤錄入猜數字
l?如果猜對了,打印“恭喜您,答對了”
l?如果猜錯了
猜大了:打印“sorry,您猜大了!”
猜小了:打印“sorry,您猜小了!”
l?直到數字猜到為止
import java.util.Random;//導入包Random import java.util.Scanner;//導入包Scanne class Demo04 {public static void main(String[] args) {Random r = new Random();int a=r.nextInt(99);//隨機產生0-99的數int b=a+1;//隨機產生0-99的數System.out.println("請輸入您猜測的數:");Scanner sc = new Scanner(System.in);int x=sc.nextInt();//輸入猜測的數 x while(true){if(x>b){System.out.println("sorry,您猜大了!");}else if(x<b){System.out.println("sorry,您猜小了!");}else{System.out.println("恭喜您,答對了");break;}x=sc.nextInt();}?
轉載于:https://www.cnblogs.com/dk2557/p/9328964.html
總結
以上是生活随笔為你收集整理的java 控制语句、数组、方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis学习笔记之Redis单机,伪集
- 下一篇: 5-(基础入门篇)学会刷Wi-Fi模块固