运行结果是35,正确答案是34,所以是哪个地方错了呢?
public class Money {
public static void main(String[] args) {
double moneyday = 2.5;
double money = 5;
double sum = 0;
double moneysum = 100;
int day = 1;
while (sum < moneysum) {
if (day % 5 == 0) {
sum += money;
} else {
sum += moneyday;
}
day++;
}
System.out.println(day);
}
}
public static void main(String []args) {
double moneyday = 2.5;
double money = 5;
double sum = 0;
double moneysum = 100;
int day = 0;
do{
day++;
if (day % 5 == 0) {
sum += money;
} else {
sum += moneyday;
}
System.out.println(day);
}while (sum < moneysum);
}
day++的时间出错了。 你每次执行完之后天数+1,也就是第34次执行完之后会+1。
double sum=0;
int i= 0;
int count=0;
do{
i++;
sum+=2.5;
count++;
if(count==5){
sum=sum-6;
count=0;
}
}while(sum<100);
System.out.println("需要多少天"+i+"天");
int day=1;这里错了 不是do while和while的问题,你这里应该把day的默认值定义为0,第一次给了钱day的值才为1,你这样定义是钱还没给就已经有1天了.
所以你可以改成 int day=0;
执行流程:
1:执行初始化语句
2:执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
3:执行循环体语句
4:执行条件控制语句
5:回到2继续
格式:
初始化语句;
while (条件判断语句){
循环体语句;
条件控制语句;
}