目录
第一题:
要求:
假设某人有100000现金。 每经过一次路口需要进行一次交费。 交通规则为为当他现金大于50000时每次需要交5%如果现金小于等于50000时每次交5000。 请写一程序计算此人可以经过多少次这个路口
第一遍代码
//分三种情况 1)>50000,2)<=50000或者>=1000,3)<1000
//定义变量表示钱,过路费,次数,
//double money = 100000;double cost = 0;int count = 0;
//
public class HomeWork0101{
//编写一个main方法
public static void main(String[] args){
double money = 100000;
int count = 0;
double cost = 0;
if(money > 50000){
cost = money*0.05;
money -= cost;
count++;
}else if(money >= 1000){
cost = 1000;
money -= cost;
count++;
}else{
System.out.println("该人费用不够通过一次路口");
}
System.out.println("该人可以经过" + count + "次路口");
}
}
运行结果,只有一次,只运行了第一个if得到count = 1就输出了
所以需要循环计算,但是我们并不知道这个程序需要循环多少次,所以使用while(true)这个死循环,当money<1000的时候用break结束这个循环
public class HomeWork0101{
//编写一个main方法
public static void main(String[] args){
double money = 100000;
int count = 0;
double cost = 0;
while(true){
if(money > 50000){
cost = money*0.05;
money -= cost;
count++;
}else if(money >= 1000){
cost = 1000;
money -= cost;
count++;
}else{
break;
}
}
System.out.println("该人可以经过" + count + "次路口");
}
}
出现的错误总结:
1.数字10000,不能写成10,000;2.定义变量后面的常量可以是表达式,但是不能有百分号,如money*5%就不行,必须写成money*0.05 3.break语句必须用在循环语句中
代码精简:cost = money*0.05; money -= cost; 可以写成 money = money-money*0.05 money=money*0.95进一步简化成 money *= 0.95;
cost = 1000; money -= cost; 简化成money -= 1000;不需要cost这个变量了
public class HomeWork0101{
//编写一个main方法
public static void main(String[] args){
double money = 100000;
int count = 0;
while(true){
if(money > 50000){
money *= 0.95;
count++;
}else if(money >= 1000){
money -= 1000;
count++;
}else{
break;
}
}
System.out.println("该人可以经过" + count + "次路口");
}
}
第二题:判断一个整数的范围 大于0,小于0 ,等于0
import java.util.Scanner;
public class HomeWork0201{
//编写一个main方法
public static void main(String[] args){
Scanner sc = ne