为什么details分配的值从未使用 details +=("收入\t"+chu+"\t"+money+"\t\t"+info+"\n");
import java.util.Scanner;
public class famliy {
public static void main(String[]args){
Scanner scan=new Scanner(System.in);
label: for (;;) {
int chu=10000;
String details = "收支\t账户金额 \t收支金额 \t说 明\n";
System.out.println("-----------家庭收支记账软件----------------\n");
System.out.println(" 1.收支明细");
System.out.println(" 2.登记收入");
System.out.println(" 3.登记支出");
System.out.println(" 4.退 出");
System.out.print(" 请选择(1-4):");
String xuan= scan.next();
char charXuan= xuan.charAt(0);
switch (charXuan) {
case '1':
System.out.println("-----------当前收支收支明细记录----------------");
System.out.println(details);
System.out.println("-------------------------------------------");
break;
case '2':
System.out.println("本次收入金额:");
int money=scan.nextInt();
System.out.print("本次收入说明:");
String info = scan.next();
chu+=money;
//处理details
details +=("收入\t"+chu+"\t"+money+"\t\t"+info+"\n");
System.out.println("-----------登记完成----------------");
break ;
case '3'://System.out.println("3.登记支出");
System.out.println("本次支出金额:");
int zhi = scan.nextInt();
System.out.print("本次支出说明:");
String out = scan.next();
//处理balance
if(chu>= zhi) {
chu -= zhi;
//处理details
details +=("支出\t"+chu+"\t"+zhi+"\t\t"+out+"\n");
}else {
System.out.println("支出超出账户额度,支付失败");
}
System.out.println("-----------登记完成----------------");
break;
case '4'://System.out.println("5.退 出");
System.out.print("确认是否退出(Y/N):");
String tui=scan.next();
char tuichar= tui.charAt(0);
switch (tuichar){
case 'Y': break label;
case 'y': break label;
case 'N': break ;
case 'n': break ;
}
}
}
}
}
因为程序每次运行后,变量的值都会被丢弃。所以对于程序来说,如果一个变量只是出现在了等号左边(被赋值),那就是没有被使用的。
只有当变量出现在了等号右边(将值赋给其它变量),或做为参数出现在方法中(比如输出),才是被使用了的,在程序完全编写完成前,可以完全忽略这一警告。
有帮助请采纳,还有不懂的可以继续追问~