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