关于喝矿泉水的问题,我的思路应该没有错的啊,大家帮我看看
/*需求:矿泉水一元钱一瓶,每2个空瓶换一瓶矿泉水,现在又20元,请问可以喝多少瓶矿泉水?
*/
class Water
{
int sum=0;
boolean flag = true;
void water(int p)
{
int n = p;
while(flag) //一共能喝矿泉水瓶数
{
if (n<=0)
{
sum+=1;
flag = false;
}
sum += n;
n = p/2;
}
System.out.println(sum);
}
}
class WaterDemo3
{
public static void main(String[] args)
{
Water w = new Water();
w.water(20);
}
}
为什么运算时会变成死循环了?没有打印,一直停在那里。
如果不封装对象的话在main里是可以正常运行的
如果用for循环的话就无法把实参传到形参哪里,打印出结果是0.