关于通信录问题,请高手进来看一下
出现的问题如下:
1.在增加方法中,执行第二次增加操作时,会出现两个“请输入:”。
2.在增加方法中,如果改为 list[n][j] = in.nextLine(); 应按怎样格式输入才正确?
3.在修改方法中, 执行到“请输入:”这一步时,还没等你输入就返回到主菜单。
我用的是Eclipse,暂时发现这个程序有这3个问题。请教高手这3个问题应如何解决,顺便看一下程序设计上有何不妥之处,
我学JAVA才一个多月,所以请多多指正。
源程序如下:
[code=Java][/code]
import java.util.*;
public class List
{
String[][] list =
{
{"01", "AAA", "男", "123456", "北京"},
{"02", "BBB", "女", "456789", "福建"},
{"03", "CCC", "男", "333333", "广东"},
{" ", " ", " ", " ", " "},
{" ", " ", " ", " ", " "}
};
public void start() //主菜单
{
while(true)
{
System.out.println("1.查询\n" + "2.增加\n" + "3.修改\n" + "4.删除\n" +"5.退出");
System.out.print("请输入操作(1-5): ");
int ch = in.nextInt();
switch(ch)
{
case 1: query();
break;
case 2: add();
break;
case 3: modify();
break;
case 4: remove();
break;
case 5: exit();
break;
}
}
}
public void display() //每一次操作后都显示一遍
{
System.out.println("编号" + " " + "姓名" + " " + "性别" + " " + "电话" + " " +
"地址" );
for(int i = 0; i < list.length; i++)
{
for(int j = 0; j < list[i].length; j++)
{
System.out.print(list[i][j] + " ");
}
System.out.println();
}
}
public void query() //查询
{
System.out.println("请输入你想查询的编号(1、2、3……): ");
int j = in.nextInt();
if(j > list.length || list[j - 1][0] == " ")
{
System.out.println("无此信息");
query();
}
else
{
System.out.println("你想查询的信息在第" + j + "行");
display();
return;
}
}
public void add() //增加
{
if(n > 4)
{
System.out.println("通信录已满");
return;
}
System.out.print("请输入:");
if(list[n][0] == " ")
{
for(int j = 0; j < 5; j++)
{
list[n][j] = in.next(); //空格为分隔符
if(j == 4)
{
System.out.println("增加成功!");
display();
}
}
}
else
{
n++;
add();
}
}
public void modify() //修改
{
System.out.print("请输入你想要修改的编号(1、2、3……):");
int i = in.nextInt();
System.out.println("1:姓名");
System.out.println("2:性别");
System.out.println("3:电话");