java双层嵌套循环break continue

请用嵌套循环模拟银行ATM取款业务,首先输入银行卡密码,如果输入错误,提示重新输入,密码是111111,密码最多只能输入3次,3次输入错误后就输出结束取款信息。密码输入正... 请用嵌套循环模拟银行ATM取款业务,首先输入银行卡密码,如果输入错误,提示重新输入,密码是111111,密码最多只能输入3次,3次输入错误后就输出结束取款信息。密码输入正确后,进入取款功能,取款金额要在0-2000之内并被100整除,取款结束后打印取款金额,并结束循环。 展开
 我来答
东方箭
2012-03-16 · TA获得超过708个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:217万
展开全部
没事来做下这题
import java.util.Scanner;

public class Test1 {

public static void main(String[] args) {
// 密码输入次数
int count = 0;
//跳出两次循环,设置标志位
boolean flag=true;
System.out.print("请输入银行卡密码:");
while (flag) {
Scanner scanner = new Scanner(System.in);
String password = scanner.nextLine();
if ("111111".equals(password)) {
System.out.print("密码正确,请输入取款金额(取款金额要在0-2000之内,仅提供百元大钞):");
while (true) {
Scanner scanner1 = new Scanner(System.in);
String moneyStr = scanner1.nextLine();
int money=0;
try{
money = Integer.parseInt(moneyStr);
}catch (Exception e) {
System.out.println("警告:你必须输入数字!");
}
if (money > 0 && money <= 2000 && money % 100 == 0) {
System.out.println("您成功取款" + money + "元,感谢使用本系统!再见!");
//跳出两次循环
flag=false;
break;
} else {
System.out.print("您输入的金额有误,请重新输入(取款金额要在0-2000之内,仅提供百元大钞):");
}
}
} else {
if (count == 2) {
System.out.println("密码输入错误三次,取款结束");
break;
}
System.out.print("密码错误,请重新输入:");
count++;
}

}

}

}
百度网友b5b9bfaca
推荐于2016-05-04 · TA获得超过282个赞
知道答主
回答量:218
采纳率:0%
帮助的人:146万
展开全部
String password = "111111";
for (int i = 0;i<4;i++){
if (i==3){
//密码输入次数过多 失败
break;
}
//提示输入密码
Scanner scanner = new Scanner(System.in);
if (password.equals(scanner.nextLine())){
//提示密码正确 输入取款金额
i=4;
while(true){
scanner = new Scanner(System.in);
try{
Double d = new Double(scanner.nextLine());
if (d<=2000 && d>0 && d%100 == 0D){
//取款成功!
break;
}
}catch(Exception e){
}
}
}
}

其实 恰当的选择逻辑顺序 就能避免使用一些continue及break;另外你说的业务 其实逻辑上并不是嵌套循环(输密码与取款是两件事 没有嵌套的含义 因为 如果第1次就密码正确并取款成功 应该直接结束程序 而不必再次进入输密码的循环) 所以逻辑上应该是 1.输密码 3次内是否正确 如果正确 继续执行 否则 结束程序 2.检测取款金额 这样逻辑上可能更清晰一些
追问
i=4;是不是意味这密码输入功能块结束,那如果i=3是不是也可以呢,因为你前面已经说明了i=3时break;另外while(true)是什么意思,是说密码输入正确吗,可是你外面的if(password.equals(scanner.nextLine())已经判断了呀,怎么在这里要个while(true)呢
追答
(password.equals(scanner.nextLine())判断的是密码是否正确  while(true)是处理金额是否符合要求的
i=4 这只能说是一个处理方法 是告诉外层循环 密码已经输入正确了 再次走到外层循环时直接退出
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiao邪恶3
2015-10-29 · TA获得超过153个赞
知道小有建树答主
回答量:314
采纳率:100%
帮助的人:68.1万
展开全部
break是跳出当前循环,continue是进行下一次循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式