java学习——递归

 /**
	  * 添加商品类型的功能
	  * 注意创建时间和修改时间在具体的方法中直接赋值
	  * @param gT 商品类型管理表映射的GT类的实例化对象
	  */
	@Override
	public void add(String goodsTypeName) {
		sql = "insert into tb_GoodsType(goodsTypeParentID,goodsTypeName,isGoodsTypeParentID,GTIDcreatetime) values(?,?,?,?)";
		conn = DBUtil.getconn();
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			ps.setInt(1, 0);
			ps.setString(2, goodsTypeName);
			ps.setInt(3, 1);
			Timestamp tdate = new Timestamp(new Date().getTime());
			ps.setTimestamp(4, tdate);
			if(ps.executeUpdate()>0)	System.out.println("新增商品类型成功");
			else System.out.println("新增商品类型失败");
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

  递归需注意内层循环的结束条件,和外层循环的结束条件

public void addGT() {
		while(true) {
			System.out.println("请输入需要新增商品类型的名称:");
			String answer = input.next();
			GTD.add(answer);
			System.out.println("输入1继续,输入0返回商品类型管理页面");
			String answer1 = input.next();
			if("1".equals(answer1)) {
				addGT();
//	这里的25行break在addGT()输入no时直接跳出递归的内层循环
//	如果25行这里缺少break,输入no时,只能跳出内层循环,跳出后还是在if语句体中,会接着循环一次。输入no才推出
				break;
//				System.out.println("内层的循环");
			}
			else {
//				System.out.println("最外层的循环");
				break;	
			}
		}
		
	}

  

原文地址:https://www.cnblogs.com/klory/p/10629327.html