6.4_[Java 数组]-详解 break/continue 跳转语句
##################################################
目錄
詳解 break/continue 跳轉語句
b/c 跳轉語句對二重循環的影響
break 示例程序
contiune 示例程序
continue 搭配 break
模擬 ATM 機
##################################################
詳解 break/continue 跳轉語句
——————————
b/c 跳轉語句對二重循環的影響
????????break/continue 還記得嗎?
????????當我們希望在某種條件下 想讓程序 不按正常流程執行
????????可以用 break/continue
? ? ? ? 但是這個跳轉在二重循環中 起到什么作用呢?。。
????????當 break/continue 在內循環時 只會影響內循環的執行流程
????????而不會對外循環的執行流程有絲毫影響
?所以 她們的不同 僅僅是程序的跳轉位置不同
break break 會跳出本層循環 提前結束此循環代碼段 break 會直接跳出整個內循環代碼段 即 結束此 遍 內循環 忘了嗎?外跑一趟,內跑一遍! 執行在內循環后的代碼段 若沒有 則跳到外循環繼續執行continue continue 是跳出本次循環 繼續下一次循環 內循環中的 continue 就是 結束此次循環 繼續下一次內循環 完全不影響內循環塊以外的代碼段——————————
break 示例程序
????????需求:
你的 MM 要求你跟著逛街 一共有 10 家店 每家限購 5 件衣服
你的 MM 要求 必須把這十家店逛完
一家店買 5 件衣服 只要不離開 就一直買 5 件衣服。。
中途退出就買 1 件衣服
那 一共買了 幾件衣服?。。
? ? ? ? demo:
C:\Users\byme\javaTest>javac test.javaC:\Users\byme\javaTest>java test 歡迎光臨第 1 家店 : 灰太狼娃娃店 要離開嗎?(y/n) <<< n 。。買了 5 件衣服要離開嗎?(y/n) <<< n 。。買了 5 件衣服要離開嗎?(y/n) <<< y 還好,只買了一件。。歡迎光臨第 2 家店 : 喜陽陽店 要離開嗎?(y/n) <<< y 還好,只買了一件。。歡迎光臨第 3 家店 : 一路向西 要離開嗎?(y/n) <<< y 還好,只買了一件。。歡迎光臨第 4 家店 : 一路向東 要離開嗎?(y/n) <<< n 。。買了 5 件衣服要離開嗎?(y/n) <<< y 還好,只買了一件。。歡迎光臨第 5 家店 : 一路歡喜 要離開嗎?(y/n) <<< y 還好,只買了一件。。歡迎光臨第 6 家店 : 一路嘻哈 要離開嗎?(y/n) <<< y 還好,只買了一件。。歡迎光臨第 7 家店 : 牛仔專賣店 要離開嗎?(y/n) <<< y 還好,只買了一件。。歡迎光臨第 8 家店 : 拖拉板子 要離開嗎?(y/n) <<< y 還好,只買了一件。。歡迎光臨第 9 家店 : 風中的黃褲衩 要離開嗎?(y/n) <<< y 還好,只買了一件。。歡迎光臨第 10 家店 : 馮提莫兒 要離開嗎?(y/n) <<< n 。。買了 5 件衣服要離開嗎?(y/n) <<< y 還好,只買了一件。。一共買了 30 件衣服 555.. .C:\Users\byme\javaTest>????????code:
import java.util.Scanner;public class test {public static void main(String[] args) {Scanner input = new Scanner(System.in);int count = 0; /* 計數 記錄件數 */String out = ""; /* 記錄 滾出 */String Shop[] = new String[] { "灰太狼娃娃店", "喜陽陽店","一路向西", "一路向東","一路歡喜", "一路嘻哈","牛仔專賣店", "拖拉板子","風中的黃褲衩", "馮提莫兒" }; /* 店名 */for ( int i = 1; i <= 10; i ++ ) {System.out.println ( "歡迎光臨第 " + i + " 家店 : " + Shop[i-1] );for ( int j = 1; j <= 10; j ++ ) {System.out.print ( "要離開嗎?(y/n) <<< " );out = input.next();if ( out.equals("y") )/* 如果離開 買了 1 件 */break;/* 沒有離開 買了 5 件 */System.out.println ( "。。買了 5 件衣服\n" );count += 5; /* 什么是 += 還記得嗎? count = count + 5; */}System.out.println ( "還好,只買了一件。。\n" );count ++;}System.out.println ( "一共買了 " + count + " 件衣服 555.." );out = input.next(); /* 輸入任意內容回車結束程序.. */} }——————————
contiune 示例程序
? ? ? ? 需求:
計算積分在 100 點積分以上的用戶有幾個?
? ? ? ? demo:
C:\Users\byme\javaTest>javac test.javaC:\Users\byme\javaTest>java test 請輸入一共有幾組用戶 <<< 3 請輸入每組有幾個用戶 <<< 5請輸入 5 個用戶的積分 當前,第 1 組 第 1 位用戶的積分 <<< 76 第 2 位用戶的積分 <<< 58 第 3 位用戶的積分 <<< 109 第 4 位用戶的積分 <<< 103 第 5 位用戶的積分 <<< 300 第 1 組用戶平均積分為 >>> 129.2請輸入 5 個用戶的積分 當前,第 2 組 第 1 位用戶的積分 <<< 56 第 2 位用戶的積分 <<< 32 第 3 位用戶的積分 <<< 87 第 4 位用戶的積分 <<< 65 第 5 位用戶的積分 <<< 90 第 2 組用戶平均積分為 >>> 66.0請輸入 5 個用戶的積分 當前,第 3 組 第 1 位用戶的積分 <<< 120 第 2 位用戶的積分 <<< 23 第 3 位用戶的積分 <<< 454 第 4 位用戶的積分 <<< 56 第 5 位用戶的積分 <<< 7 第 3 組用戶平均積分為 >>> 132.0積分在 100 分以上的用戶 有 5 人C:\Users\byme\javaTest>? ? ? ? code:
import java.util.*;public class test {public static void main(String[] args) {Scanner input = new Scanner(System.in);int money_P = 0; /* 記錄有錢人 */double SUM = 0.0; /* 總積分 *//* 組數量 */System.out.print ( "請輸入一共有幾組用戶 <<< " );int group = input.nextInt();double sum[] = new double[group]; /* 平均積分數組 *//* 每組用戶數量 */System.out.print ( "請輸入每組有幾個用戶 <<< " );int user_num = input.nextInt();int user[] = new int[user_num]; /* 用戶數量數組 */System.out.println();for ( int i = 0; i < group; i ++ ) {/* 外層循環控制組數量 */SUM = 0.0; /* 總積分歸零 */System.out.println ( "請輸入 " + user_num + " 個用戶的積分 當前,第 " + (i + 1) + " 組" );for ( int j = 0; j < user.length; j ++ ) {/* 內層循環控制每組用戶數量 */System.out.print ( "第 " + (j + 1) + " 位用戶的積分 <<< " );user[j] = input.nextInt();SUM += user[j]; /* 總和 初始為 0 = 上次和 + 此次 */if ( user[j] < 100 )/* 卡住窮鬼 */continue; /* 窮鬼 跳過不管 */money_P ++; /* 有錢人 + 1 */}sum[i] = SUM / user.length; /* 計算平均分 */System.out.println ( "第 " + (i + 1) + " 組用戶平均積分為 >>> "+ sum[i] + "\n" );}System.out.println ( "積分在 100 分以上的用戶 有 " + money_P + " 人" );} }? ? ? ? 改進一下程序
? ? ? ? 升級需求:
循環錄入用戶積分然后計算用戶平均積分
積分在 100 以上的有幾人
添加一個功能:
積分大于 90 的用戶平均分有多少?
? ? ? ? demo:
C:\Users\byme\javaTest>javac test.javaC:\Users\byme\javaTest>java test 請輸入一共有幾組用戶 <<< 4 請輸入每組有幾個用戶 <<< 2請輸入 2 個用戶的積分 當前,第 1 組 第 1 位用戶的積分 <<< 100 第 2 位用戶的積分 <<< 200 第 1 組用戶平均積分為 >>> 150.0請輸入 2 個用戶的積分 當前,第 2 組 第 1 位用戶的積分 <<< 56 第 2 位用戶的積分 <<< 32 第 2 組用戶平均積分為 >>> 44.0請輸入 2 個用戶的積分 當前,第 3 組 第 1 位用戶的積分 <<< 79 第 2 位用戶的積分 <<< 92 第 3 組用戶平均積分為 >>> 85.5請輸入 2 個用戶的積分 當前,第 4 組 第 1 位用戶的積分 <<< 132 第 2 位用戶的積分 <<< 99 第 4 組用戶平均積分為 >>> 115.5積分在 100 分以上的用戶 有 3 人 積分大于 90 的用戶平均分 為 49 %C:\Users\byme\javaTest>java test 請輸入一共有幾組用戶 <<< 4 請輸入每組有幾個用戶 <<< 2請輸入 2 個用戶的積分 當前,第 1 組 第 1 位用戶的積分 <<< 100 第 2 位用戶的積分 <<< 200 第 1 組用戶平均積分為 >>> 150.0請輸入 2 個用戶的積分 當前,第 2 組 第 1 位用戶的積分 <<< 56 第 2 位用戶的積分 <<< 32 第 2 組用戶平均積分為 >>> 44.0請輸入 2 個用戶的積分 當前,第 3 組 第 1 位用戶的積分 <<< 79 第 2 位用戶的積分 <<< 92 第 3 組用戶平均積分為 >>> 85.5請輸入 2 個用戶的積分 當前,第 4 組 第 1 位用戶的積分 <<< 132 第 2 位用戶的積分 <<< 99 第 4 組用戶平均積分為 >>> 115.5積分在 100 分以上的用戶 有 3 人 積分大于 90 的用戶平均分 為 49 %C:\Users\byme\javaTest>java test 請輸入一共有幾組用戶 <<< 10 請輸入每組有幾個用戶 <<< 5請輸入 5 個用戶的積分 當前,第 1 組 第 1 位用戶的積分 <<< 100 第 2 位用戶的積分 <<< 200 第 3 位用戶的積分 <<< 300 第 4 位用戶的積分 <<< 400 第 5 位用戶的積分 <<< 500 第 1 組用戶平均積分為 >>> 300.0請輸入 5 個用戶的積分 當前,第 2 組 第 1 位用戶的積分 <<< 34 第 2 位用戶的積分 <<< 54 第 3 位用戶的積分 <<< 675 第 4 位用戶的積分 <<< 54 第 5 位用戶的積分 <<< 43 第 2 組用戶平均積分為 >>> 172.0請輸入 5 個用戶的積分 當前,第 3 組 第 1 位用戶的積分 <<< 23 第 2 位用戶的積分 <<< 43 第 3 位用戶的積分 <<< 54 第 4 位用戶的積分 <<< 65 第 5 位用戶的積分 <<< 76 第 3 組用戶平均積分為 >>> 52.2請輸入 5 個用戶的積分 當前,第 4 組 第 1 位用戶的積分 <<< 78 第 2 位用戶的積分 <<< 65 第 3 位用戶的積分 <<< 56 第 4 位用戶的積分 <<< 76 第 5 位用戶的積分 <<< 900 第 4 組用戶平均積分為 >>> 235.0請輸入 5 個用戶的積分 當前,第 5 組 第 1 位用戶的積分 <<< 324 第 2 位用戶的積分 <<< 45345 第 3 位用戶的積分 <<< 565 第 4 位用戶的積分 <<< 676 第 5 位用戶的積分 <<< 56 第 5 組用戶平均積分為 >>> 9393.2請輸入 5 個用戶的積分 當前,第 6 組 第 1 位用戶的積分 <<< 45 第 2 位用戶的積分 <<< 4345 第 3 位用戶的積分 <<< 34 第 4 位用戶的積分 <<< 567 第 5 位用戶的積分 <<< 54 第 6 組用戶平均積分為 >>> 1009.0請輸入 5 個用戶的積分 當前,第 7 組 第 1 位用戶的積分 <<< 6565 第 2 位用戶的積分 <<< 768 第 3 位用戶的積分 <<< 34 第 4 位用戶的積分 <<< 6565 第 5 位用戶的積分 <<< 343 第 7 組用戶平均積分為 >>> 2855.0請輸入 5 個用戶的積分 當前,第 8 組 第 1 位用戶的積分 <<< 232 第 2 位用戶的積分 <<< 546 第 3 位用戶的積分 <<< 76 第 4 位用戶的積分 <<< 45 第 5 位用戶的積分 <<< 43 第 8 組用戶平均積分為 >>> 188.4請輸入 5 個用戶的積分 當前,第 9 組 第 1 位用戶的積分 <<< 4534 第 2 位用戶的積分 <<< 454 第 3 位用戶的積分 <<< 5456 第 4 位用戶的積分 <<< 666 第 5 位用戶的積分 <<< 777 第 9 組用戶平均積分為 >>> 2377.4請輸入 5 個用戶的積分 當前,第 10 組 第 1 位用戶的積分 <<< 888 第 2 位用戶的積分 <<< 999 第 3 位用戶的積分 <<< 100 第 4 位用戶的積分 <<< 10000 第 5 位用戶的積分 <<< 1111 第 10 組用戶平均積分為 >>> 2619.6積分在 100 分以上的用戶 有 29 人 積分大于 90 的用戶平均分 為 222 %C:\Users\byme\javaTest>? ? ? ? code:
import java.util.*;public class test {public static void main(String[] args) {Scanner input = new Scanner(System.in);int money_P = 0; /* 記錄有錢人 */double SUM = 0.0; /* 總積分 *//* 組數量 */System.out.print ( "請輸入一共有幾組用戶 <<< " );int group = input.nextInt();double sum[] = new double[group]; /* 平均積分數組 *//* 每組用戶數量 */System.out.print ( "請輸入每組有幾個用戶 <<< " );int user_num = input.nextInt();int user[] = new int[user_num]; /* 用戶數量數組 */int G[] = new int[100]; /* 高于 90 的用戶積分 G[0] 保留 臨時計算用 */int G_num = 0; /* 高于 90 的數量 */System.out.println();for ( int i = 0; i < group; i ++ ) {/* 外層循環控制組數量 */SUM = 0.0; /* 總積分歸零 */System.out.println ( "請輸入 " + user_num + " 個用戶的積分 當前,第 " + (i + 1) + " 組" );for ( int j = 0; j < user.length; j ++ ) {/* 內層循環控制每組用戶數量 */System.out.print ( "第 " + (j + 1) + " 位用戶的積分 <<< " );user[j] = input.nextInt();SUM = SUM + user[j]; /* 總和 初始為 0 = 上次和 + 此次 */if ( user[j] > 90 )/* 記錄高于 90 的積分 */G[j+1] = user[j];if ( user[j] < 100 )/* 卡住窮鬼 跳過不管 */continue;money_P ++; /* 有錢人 + 1 */}sum[i] = SUM / user.length; /* 計算平均分 */System.out.println ( "第 " + (i + 1) + " 組用戶平均積分為 >>> "+ sum[i] + "\n" );}System.out.println ( "積分在 100 分以上的用戶 有 " + money_P + " 人" );for ( int i = 1; i <= G.length - 1; i ++ ) {if ( G[i] == 0 )break;G_num ++;G[0] = G[i];}System.out.println ( "積分大于 90 的用戶平均分 為 " + (G[0]/G_num) + " %" );} }——————————
continue 搭配 break
????????需求:
買商品 單價超過 100 以上的商品 享受 8 折優惠
一共有多少商品被打折?
? ? ? ? demo:
C:\Users\byme\javaTest>javac test.javaC:\Users\byme\javaTest>java test 有幾個顧客 <<< 4 每人買了幾個東東 <<< 2請輸入第 1 個人的 2 件東東的價格 <<< 99 100 第 1 個人一共有 0 件商品享受八折優惠.. 還要繼續嗎?(y/n) >>> y請輸入第 2 個人的 2 件東東的價格 <<< 101 100 第 2 個人一共有 1 件商品享受八折優惠.. 還要繼續嗎?(y/n) >>> y請輸入第 3 個人的 2 件東東的價格 <<< 200 300 第 3 個人一共有 2 件商品享受八折優惠.. 還要繼續嗎?(y/n) >>> n程序結束 ..C:\Users\byme\javaTest>? ? ? ? code:
import java.util.Scanner;public class test {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print ( "有幾個顧客 <<< " );int P = input.nextInt();;System.out.print ( "每人買了幾個東東 <<< " );int W = input.nextInt();for ( int i = 0, count = 0; i < P; i ++ ) {/* 分析需求 發現 外層控制顧客數量 i < 顧客 */System.out.println ( "\n請輸入第 " + (i + 1) + " 個人的 " + W + " 件東東的價格 <<< " );for ( int j = 0; j < W; j ++ ) {/* 內層控制 每人買多少件商品 j < 商品 */double M = input.nextDouble(); /* 循環錄入價格 *//* 判斷是否可以折扣 折扣就計數 不折扣就 continue */if ( M > 100.0 )count ++;if ( M < 100.0 )continue;}System.out.println ( "第 " + (i + 1) + " 個人一共有 " + count + " 件商品享受八折優惠.." );count = 0; /* 計數歸零 */System.out.print ( "還要繼續嗎?(y/n) >>> " );String Y_N = input.next();if ( Y_N.equals( "n" ) )break;if ( Y_N.equals ( "y" ) )continue;}System.out.println ( "\n程序結束 .." );} }——————————
模擬 ATM 機
????????需求:
模擬 ATM 取款過程
密碼最多輸入 3 次 超過限制次數 則提示: 密碼錯誤,請取卡
密碼若正確 提示輸入金額 一次 100 一次取錢最低為 0 最高 1000
如果符合要求 輸出錢數 提示: 交易完成,請取卡
否則提示 重新輸入金額
? ? ? ? demo:
C:\Users\byme\javaTest>javac test.javaC:\Users\byme\javaTest>java test 請輸入密碼 <<< 111 請輸入密碼 <<< 111 請輸入密碼 <<< 111 密碼錯誤,請取卡!C:\Users\byme\javaTest>java test 請輸入密碼 <<< 111111 請輸入金額 <<< 999 您輸入的金額不合法,請重新輸入 <<< 67 您輸入的金額不合法,請重新輸入 <<< 99 您輸入的金額不合法,請重新輸入 <<< 0 您取了 0 ¥ 交易成功,請取卡!C:\Users\byme\javaTest>java test 請輸入密碼 <<< 111111 請輸入金額 <<< 2000 您輸入的金額不合法,請重新輸入 <<< 1001 您輸入的金額不合法,請重新輸入 <<< 456 您輸入的金額不合法,請重新輸入 <<< 10000 您輸入的金額不合法,請重新輸入 <<< 100 您取了 100 ¥ 交易成功,請取卡!C:\Users\byme\javaTest>? ? ? ? code:
import java.util.*;public class test {public static void main(String[] args) {Scanner input = new Scanner(System.in);int Pass = 000000, Amount = 0, Number_1 = 0, Number_2 = 0;for ( int i = 1; i <= 3; i ++ ) {/* 外循環控制輸入密碼次數 && 驗證是否通過 未通過則 continue 繼續輸入 */System.out.print ( "請輸入密碼 <<< " );Pass = input.nextInt();if ( Pass != 111111 ) {/* 假設密碼為 111111 */if ( i == 3 )/* 執行到這里 證明失敗 3 次 自動結束外循環 外循環后面無代碼段 即結束程序 */System.out.println ( "密碼錯誤,請取卡!" );/* 執行到這里 證明不合法 跳轉到下一次外循環 重新輸入再檢查 */continue;}System.out.print ( "請輸入金額 <<< " );/* 經典的死循環形式 還記得嗎? 不過我們有跳轉語句控制程序流程! */for ( ; ; ) {/* 內循環控制輸入金額 金額合法 則輸出 && 提示 && break 跳出 否則 continue 跳到內循環繼續接收輸入 */Amount = input.nextInt();/* 分解位數 */Number_1 = Amount % 10; /* 分解得到 個 位數 */Number_2 = Amount / 10 % 10; /* 分解得到 十 位數 */if ( (Amount < 0) || (Amount > 1000) || (Number_1 != 0) || (Number_2 != 0) ) {/* 很嚴謹的條件 大于 0 小于 1000 個位、十位必須為 0 只能為 1000 以內的整百值或為 0 *//* 執行到這里 證明不合法 跳轉到下一次內循環 重新輸入再檢查 */System.out.print ( "您輸入的金額不合法,請重新輸入 <<< " );continue;}/* 執行到這里 證明取完了 可以結束程序了 退出內循環 繼續外循環的其余代碼 */System.out.println ( "您取了 " + Amount + " ¥\n交易成功,請取卡!" );break;}/* 執行到這里 證明取完了 并且密碼正確 可以結束程序了 退出外循環 結束程序! */break;}} }總結
以上是生活随笔為你收集整理的6.4_[Java 数组]-详解 break/continue 跳转语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京林业大c语言程序设计考试试题,201
- 下一篇: 考研:研究生考试(五天学完)之《线性代数