上班:空的时候是真空,来事的时候一堆事情堆在一块,是真烦。
今天周四,明天就是周五了,加油,打工人!
今天的学习是完善昨天的小项目:昨天的问题没有解决,我把代码上传,明天在家里的台式上运行一下。
Utility代码见昨天。
完善后的代码:
class FamilyAccount{
public static void main(String[] args){
boolean isFlag = true;
//用于记录用户的收入和支出的详情
String details = "";
//初始金额
String balance =
while(isFlag){
System.out.println("------------家庭收支记账软件------------\n");
System.out.println(" 1.收支明细");
System.out.println(" 2.登记收入");
System.out.println(" 3.登记支出");
System.out.println(" 4.退 出\n");
System.out.println("请选择(1-4):");
//获取用户的选择
char selection = Utility.readMenuSelection();//这里Utility放在同一文件夹中,然后调用
switch(selection){
case '1':
//System.out.println("1.收支明细");
System.out.println("-------------当前收支明细记录-------------");
System.out.println("收支\t账户金额\t收支金额\t说 明\n");
System.out.println("details");
System.out.println("------------------------------------------");
break;
case '2':
//System.out.println("2.登记收入");
System.out.print("本次收入金额:");
int addMoney = Utility.readNumber();
System.out.print("本次收入说明:");
String addInfo = Utility.readString();
//处理balance
balance += addMoney;
//处理details
details += "收入\t" + balance + "\t\t" + addMoney + "\t\t" + addInfo + "\n");
System.out.print("---------------登记完成---------------------\n");
break;
case '3':
//System.out.println("3.登记支出");
System.out.print("本次支出金额:");
int minusMoney = Utility.readNumber();
System.out.print("本次支出说明:");
String minusInfo = Utility.readString();
//处理balance
if(balance >= minusMoney){
balance -= minusMoney;
//处理details
details += "收入\t" + balance + "\t\t" + minusMoney + "\t\t" + minusInfo + "\n");
}else{
System.out.println("支出超出额度,支付失败")
}
//处理details
details += "收入\t" + balance + "\t\t" + money + "\t\t" + info + "\n");
System.out.print("---------------登记完成---------------------\n");
break;
case '4':
System.out.println("4.退 出");
break;
}
}
}
}
复习环节:
1.循环结构最后如何退出?
①循环条件返回false
②在循环体内,一旦执行到break,跳出循环
2.标签的用法
见前天的博客:本题需注意label是指定循环的位置。
3.编程:
已知-一个数如果恰好等于它的因子之和,这个数就称之为“完数”。例如6=1+2+3,试找出1000以内所有的完数。
代码:
class find{
public static void main(String[] args) {
//int factor == 0;
for (int i = 1; i <= 1000 ; i++ ){
int factor = 0;
for (int j = 1 ; j <= i/2 ; j++ ){
if(i % j == 0){
factor += j;
}
}
if (i == factor){
System.out.println(i);
}
}
//重置factor
}
}