while循环使用break

package greedy;

import java.util.ArrayList;

import com.Goods;
import com.GoodsDAO;
import com.IGoods;

public class MGConcrete extends MGreedy {

	IGoods goods = new GoodsDAO();
	
	// 每次取单位价值最大的,经过此种方法,返回最大价值及其重量
	@Override
	public int MaxPerValue(ArrayList<Goods> goodsList,int maxCapacity) {
		ArrayList<Goods> list = new ArrayList<Goods>();
		// max用来记录背包能容纳的最大重量
		int max = 0;
		// 遍历ArrayList的标志变量
		int index = 0;
		list = goods.perValueList(goodsList);
		
		for (@SuppressWarnings("unused") Goods goods : list) {
			max += list.get(index).getWeigth();
			// 最大价值
			Value_MaxPerValue += list.get(index).getValue();
			index++;
			if(max + list.get(index).getWeigth() > maxCapacity) 
				break;
		}
		return max;
	}

	// 每次取价值最大的,经过此种方法,返回最大价值及其重量
	@Override
	public int MaxValue(ArrayList<Goods> goodsList,int maxCapacity) {
		ArrayList<Goods> list = new ArrayList<Goods>();
		// max用来记录背包能容纳的最大重量
		int max = 0;
		// 遍历ArrayList的标志变量
		int index = 0;
		list = goods.valueList(goodsList);

		for (@SuppressWarnings("unused") Goods goods : list) {
			max += list.get(index).getWeigth();
			// 最大价值
			Value_MaxValue += list.get(index).getValue();
			index++;
			if(max + list.get(index).getWeigth() > maxCapacity) 
				break;
		}
		return max;
	}

	// 每次取重量最小的,经过此种方法,返回最大价值及其重量
	@Override
	public int MinWeight(ArrayList<Goods> goodsList,int maxCapacity) {
		ArrayList<Goods> list = new ArrayList<Goods>();
		// max用来记录背包能容纳的最大重量
		int max = 0;
		// 遍历ArrayList的标志变量
		int index = 0;
		list = goods.weightList(goodsList);
		
		for (@SuppressWarnings("unused") Goods goods : list) {
			max += list.get(index).getWeigth();
			// 最大价值
			Value_MinWeight += list.get(index).getValue();
			index++;
			if(max + list.get(index).getWeigth() > maxCapacity) 
				break;
		}
		return max;
	}
}

 

 

解决,while循环是在满足条件的最后一个元素结束循环。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值