黑马程序员技术交流社区
标题:
for循环和自增运算符中的坑
[打印本页]
作者:
泛大陆
时间:
2015-7-28 08:43
标题:
for循环和自增运算符中的坑
小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来。每到周日,小明拿到钱后会把所有零花钱花掉一半。请编程计算,从周一开始,小明需要多少天才能存够100元?
这道题心算就能算出结果了,写代码的时候刚开始就被坑了,没反应过来for循环体结束后自增还会再执行一次
public class Test10
{
public static void main(String[] args)
{
/*
int x=1,sum=0;
for(;sum<100;x++)
{
if(x%7==0)
sum=(sum+20)/2;
else
sum=sum+10;
}
System.out.println("x="+x+"..."+"sum="+sum);//输出每天及当天总共存的零花钱
*/
for(int x=1,sum=0;sum<100;x++)
{
if(x%7==0)
sum=(sum+20)/2;
else
sum=sum+10;
System.out.println("x="+x+"..."+"sum="+sum);//输出每天及当天总共存的零花钱
}
}
}
复制代码
作者:
halohoop
时间:
2015-7-28 10:04
class Test
{
public static void main(String[] args)
{
int days = 1;
int sumMoney = 0;
int saveMoney = 10;
for( ; true; days++)
{
if(days%7==0)
{
sumMoney += saveMoney*2;
sumMoney = sumMoney/2;
}
else
sumMoney+=saveMoney;
if(sumMoney==100)
{
System.out.println("sumMoney: "+sumMoney+" days: "+days);
break;
}else
System.out.println("sumMoney: "+sumMoney);
}
System.out.println("sumMoney: "+sumMoney+" days: "+days);
}
}
复制代码
作者:
章浩
时间:
2015-7-28 11:46
用do。。while嘛
class Test
{
public static void main(String[] args)
{
int days=0,money=0;
do{
days++;
//判断是否是周日
if (days%7==0)
{
money=(money+20)/2;
}
else
{
money=money+10;
}
}
while(money<100);
System.out.println(days);
}
}
作者:
lizf2010
时间:
2015-7-28 15:14
用while循环好一些
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2