关于数组问题 为什么custBirth[index] = custbirth;赋给custBirth[index] 不会改变

x_kai308 2017-09-13 11:43:10
public void showb() {// 我行我素购物管理系统 > 客户信息管理 > 修改客户信息
String a = "";
custNo[0] = 1900;
custNo[1] = 1711;
custNo[2] = 1623;
custNo[3] = 1545;
custNo[4] = 1464;
custNo[5] = 1372;
custNo[6] = 1286;
custNo[7] = 4444;

custBirth[0] = "08/05";
custBirth[1] = "07/13";
custBirth[2] = "06/26";
custBirth[3] = "04/08";
custBirth[4] = "08/16";
custBirth[5] = "12/23";
custBirth[6] = "12/21";
custBirth[7] = "05/06";

custScore[0] = 2000;
custScore[1] = 4000;
custScore[2] = 5000;
custScore[3] = 2200;
custScore[4] = 1000;
custScore[5] = 3000;
custScore[6] = 10080;
custScore[7] = 1000;
System.out.println("我行我素购物管理系统 > 客户信息管理 > 修改客户信息\n");
System.out.print("请输入会员号:");
Scanner input = new Scanner(System.in);
int custno = input.nextInt();
int index = 0;
boolean con = false;
for (int i = 0; i < custNo.length; i++) {
if (custNo[i] == custno) {
index=i;
con = true;
}
}
if (con==false) {
System.out.println("输入错误");
System.out.println("请'n'返回上一级菜单:");
String is = input.next();
if ("n".equals(is)) {
showManagement();
} else {
while (!"n".equals(is)) {
System.out.print("输入错误, 请重新'n'返回上一级菜单:");
is = input.next();
}
showManagement();
}
}
System.out.println(" 会员号 生日 积分");
System.out.println("------------|------------|---------------");
System.out.println(custNo[index] + "\t" + custBirth[index] + "\t"
+ custScore[index]);
do{
System.out.println("**************************************************************");
System.out.println(" 1.修 改 会 员 生 日.");
System.out.println(" 2.修 改 会 员 积 分.");
System.out.println("**************************************************************");
System.out.print("请选择,请输入数字:");
int choos = input.nextInt();
System.out.println("");
switch(choos){
case 1:
System.out.print("请输入修改后的生日:");
String custbirth = input.next();
custBirth[index] = custbirth;
System.out.println("修改成功");
break;
case 2:
System.out.print("请输入修改后的积分:");
int custscore = input.nextInt();
custScore[index] = custscore;
System.out.println("修改成功");
break;
}
}while("y".equals(a));
System.out.print("是否修改其他属性(y/n):");
a = input.next();
System.out.println("请'n'返回上一级菜单:");
String is = input.next();
if ("n".equals(is)) {
showManagement();
} else {
while (!"n".equals(is)) {
System.out.print("输入错误, 请重新'n'返回上一级菜单:");
is = input.next();
}
managemenu();
}
}
...全文
442 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
x_kai308 2017-09-15
  • 打赏
  • 举报
回复
引用 7 楼 夫为欲往_皆如是也的回复:
[quote=引用 6 楼 qq_40233378 的回复:] 我知道原因的所在了,就是像你说的一样初始化了,想问问怎么重新赋值啊
你把下面这一段单独提出来放到一个方法里,只在程序刚启动的地方执行一下这个方法就行了。

custNo[0] = 1900;
custNo[1] = 1711;
custNo[2] = 1623;
custNo[3] = 1545;
custNo[4] = 1464;
custNo[5] = 1372;
custNo[6] = 1286;
custNo[7] = 4444;

custBirth[0] = "08/05";
custBirth[1] = "07/13";
custBirth[2] = "06/26";
custBirth[3] = "04/08";
custBirth[4] = "08/16";
custBirth[5] = "12/23";
custBirth[6] = "12/21";
custBirth[7] = "05/06";

custScore[0] = 2000;
custScore[1] = 4000;
custScore[2] = 5000;
custScore[3] = 2200;
custScore[4] = 1000;
custScore[5] = 3000;
custScore[6] = 10080;
custScore[7] = 1000;
[/quote] 把这些数组放在前面了,还是不行可能是细节上有错误吧
  • 打赏
  • 举报
回复
引用 6 楼 qq_40233378 的回复:
我知道原因的所在了,就是像你说的一样初始化了,想问问怎么重新赋值啊
你把下面这一段单独提出来放到一个方法里,只在程序刚启动的地方执行一下这个方法就行了。

custNo[0] = 1900;
custNo[1] = 1711;
custNo[2] = 1623;
custNo[3] = 1545;
custNo[4] = 1464;
custNo[5] = 1372;
custNo[6] = 1286;
custNo[7] = 4444;

custBirth[0] = "08/05";
custBirth[1] = "07/13";
custBirth[2] = "06/26";
custBirth[3] = "04/08";
custBirth[4] = "08/16";
custBirth[5] = "12/23";
custBirth[6] = "12/21";
custBirth[7] = "05/06";

custScore[0] = 2000;
custScore[1] = 4000;
custScore[2] = 5000;
custScore[3] = 2200;
custScore[4] = 1000;
custScore[5] = 3000;
custScore[6] = 10080;
custScore[7] = 1000;
  • 打赏
  • 举报
回复
引用 8 楼 qq_40233378 的回复:
把这些数组放在前面了,还是不行可能是细节上有错误吧
你得确保这段代码只被执行一遍,不行你就把代码(包括main方法的地方)发来,我看看你那儿出问题了。
逗比123号 2017-09-14
  • 打赏
  • 举报
回复
可以修改的,应该是你返回上一级菜单是重新运行这个方法,所以没有改过来。数组赋值不要放在这个方法里试试看。
x_kai308 2017-09-14
  • 打赏
  • 举报
回复
引用 4 楼 qq_33140971的回复:
我把你的代码执行了一下,发现生日赋值是成功了的,值也改了。 我想问一下,你是怎么知道赋值没有成功的,我是在修改成功的地方把custScore[index]也输出了,顺便提醒你一下,一定不要重新执行你的这个方法,要不你的所有数据全都会被重新初始化。。。。
我知道原因的所在了,就是像你说的一样初始化了,想问问怎么重新赋值啊
x_kai308 2017-09-14
  • 打赏
  • 举报
回复
大神帮帮我。。。。
  • 打赏
  • 举报
回复
刚才打错了,是custBirth[index],不是custScore[index]
  • 打赏
  • 举报
回复
我把你的代码执行了一下,发现生日赋值是成功了的,值也改了。 我想问一下,你是怎么知道赋值没有成功的,我是在修改成功的地方把custScore[index]也输出了,顺便提醒你一下,一定不要重新执行你的这个方法,要不你的所有数据全都会被重新初始化。。。。
x_kai308 2017-09-14
  • 打赏
  • 举报
回复
引用 2 楼 逗比123号的回复:
可以修改的,应该是你返回上一级菜单是重新运行这个方法,所以没有改过来。数组赋值不要放在这个方法里试试看。
数组不在里面也不行,而且我添加会员就有反回的也是一样的地方都是有用的

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧