A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

用来帮助程序做复杂条件的判断条件。如果出现多层循环,根据业务逻辑不可顺序执行,可使用flag设立旗标来改变执行语句。
注意跳转标识,如 break,continue,return。
这个是我自己总结的,但在实际使用中,明明同样的条件,就是问法不一样,一个需要使用,一个不需要,为什么?什么情况下用flag,什么情况下不用?

5 个回复

倒序浏览
本帖最后由 天赐潇潇 于 2016-3-7 01:38 编辑
  1. // 买方法 : 1.显示报价单2. 显示打折金额 3.选择水果(输入0 结束选择)id4 获取数量 5计算金额
  2.         public static void buy() {
  3.                 // 1.显示报价单
  4.                 showFruitList();
  5.                 // 2.显示打折信息
  6.                 System.out.println(
  7.                                 "\n\t\t好消息!年底大促销:\n\n\t满300,打九五折!\n\t满600,打九折!!\n\t满1000,打八折!!!\n\t满1000且榴莲超过10个,立减50元!!!!!\n");
  8.                 // 3.用户选择水果,用户输入水果ID,遍历集合进行对比,有的话就可以选择数量,没有的话提示用户输入错误,重新输入
  9.                 while (true) {
  10.                         System.out.println("\n请输入要买的水果ID,如果输入\"0\"代表退出");
  11.                         int chooseID = enterNumber();
  12.                         // 如果输入0,代表结束购买,结束购买就是结束购买这个方法
  13.                         if (chooseID == 0) {
  14.                                 return;// 结束购买方法
  15.                         }
  16.                         boolean flag = false;
  17.                         for (int i = 0; i < list.size(); i++) {
  18.                                 FruitItem thisItem = list.get(i);
  19.                                 if (chooseID == thisItem.ID) {
  20.                                         System.out.println("\n请输入购买数量:");
  21.                                         thisItem.number = enterNumber();
  22.                                         thisItem.money = thisItem.price * thisItem.number;
  23.                                         flag = true;
  24.                                 }
  25.                         }
  26.                         if (!flag) {
  27.                                 System.out.println("您输入的ID有误,请重新输入!\n");
  28.                                 flag = false;
  29.                         }
  30.                 }
  31.         }
复制代码


评分

参与人数 1黑马币 +2 收起 理由
洋葱头头 + 2 很给力!

查看全部评分

回复 使用道具 举报
2楼是用了的
回复 使用道具 举报
楼下是没有用flag的
回复 使用道具 举报
  1. // 添加水果项,要在确认之后在创建对象
  2.         public static void addFruitItem() {
  3.                 ForEstimate: while (true) {
  4.                         // 首先设置一个变量来接收输入的编号,判断一下编号是否已经存在
  5.                         System.out.println("请输入水果编号:");
  6.                         int ID = enterNumber();
  7.                         // 如果已经存在,输入错误,请重新输入
  8.                         for (int i = 0; i < list.size(); i++) {
  9.                                 FruitItem thisItem = list.get(i);
  10.                                 if (thisItem.ID == ID) {
  11.                                         System.out.println("您输入的编号已存在,请重新输入!");
  12.                                         continue ForEstimate;
  13.                                 }
  14.                         }
  15.                         FruitItem newItem = new FruitItem();
  16.                         newItem.ID = ID;
  17.                         System.out.println("请输入水果名称:");
  18.                         newItem.name = enterString();
  19.                         System.out.println("请输入水果单价:");
  20.                         newItem.price = enterDouble();
  21.                         System.out.println("请输入计价单位:");
  22.                         newItem.unit = enterString();
  23.                         list.add(newItem);
  24.                         System.out.println("结束添加输入\"0\",输入\"1\"继续添加:");
  25.                         switch (enterNumber()) {
  26.                         case 0:
  27.                                 return;
  28.                         default:
  29.                         }
  30.                 }
复制代码
回复 使用道具 举报
额  竟然没人  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马