##################################################
目录
详解 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:UsersbymejavaTest>javac test.java C:UsersbymejavaTest>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:UsersbymejavaTest>
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") )
break;
System.out.println ( "。。买了 5 件衣服n" );
count += 5;
}
System.out.println ( "还好,只买了一件。。n" );
count ++;
}
System.out.println ( "一共买了 " + count + " 件衣服 555.." );
out = input.next();
}
}
——————————
contiune 示例程序
需求:
计算积分在 100 点积分以上的用户有几个?
demo:
C:UsersbymejavaTest>javac test.java C:UsersbymejavaTest>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:UsersbymejavaTest>
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];
if ( user[j] < 100 )
continue;
money_P ++;
}
sum[i] = SUM / user.length;
System.out.println ( "第 " + (i + 1) + " 组用户平均积分为 >>> "
+ sum[i] + "n" );
}
System.out.println ( "积分在 100 分以上的用户 有 " + money_P + " 人" );
}
}
改进一下程序
升级需求:
循环录入用户积分然后计算用户平均积分
积分在 100 以上的有几人
添加一个功能:
积分大于 90 的用户平均分有多少?
demo:
C:UsersbymejavaTest>javac test.java C:UsersbymejavaTest>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:UsersbymejavaTest>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:UsersbymejavaTest>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:UsersbymejavaTest>
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];
int G_num = 0;
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];
if ( user[j] > 90 )
G[j+1] = user[j];
if ( user[j] < 100 )
continue;
money_P ++;
}
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:UsersbymejavaTest>javac test.java C:UsersbymejavaTest>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:UsersbymejavaTest>
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 ++ ) {
System.out.println ( "n请输入第 " + (i + 1) + " 个人的 " + W + " 件东东的价格 <<< " );
for ( int j = 0; j < W; j ++ ) {
double M = input.nextDouble();
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:UsersbymejavaTest>javac test.java C:UsersbymejavaTest>java test 请输入密码 <<< 111 请输入密码 <<< 111 请输入密码 <<< 111 密码错误,请取卡! C:UsersbymejavaTest>java test 请输入密码 <<< 111111 请输入金额 <<< 999 您输入的金额不合法,请重新输入 <<< 67 您输入的金额不合法,请重新输入 <<< 99 您输入的金额不合法,请重新输入 <<< 0 您取了 0 ¥ 交易成功,请取卡! C:UsersbymejavaTest>java test 请输入密码 <<< 111111 请输入金额 <<< 2000 您输入的金额不合法,请重新输入 <<< 1001 您输入的金额不合法,请重新输入 <<< 456 您输入的金额不合法,请重新输入 <<< 10000 您输入的金额不合法,请重新输入 <<< 100 您取了 100 ¥ 交易成功,请取卡! C:UsersbymejavaTest>
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 ++ ) {
System.out.print ( "请输入密码 <<< " );
Pass = input.nextInt();
if ( Pass != 111111 ) {
if ( i == 3 )
System.out.println ( "密码错误,请取卡!" );
continue;
}
System.out.print ( "请输入金额 <<< " );
for ( ; ; ) {
Amount = input.nextInt();
Number_1 = Amount % 10;
Number_2 = Amount / 10 % 10;
if ( (Amount < 0) || (Amount > 1000) || (Number_1 != 0) || (Number_2 != 0) ) {
System.out.print ( "您输入的金额不合法,请重新输入 <<< " );
continue;
}
System.out.println ( "您取了 " + Amount + " ¥n交易成功,请取卡!" );
break;
}
break;
}
}
}



