请问如何循环
System.out.println("请输入会员号码");
String targetid=g.readLine();
for ( int x = 0 ; x< count ; x++)
if (targetid.equals(nirc[x]))
{
System.out.println("Member ID " +id[x]);
System.out.println("Member Name " + name[x]);
System.out.println("Member NIRC " + nirc[x]);
System.out.println("Member Age " +age[x]);
System.out.println("Member Gender " +gender[x]);
System.out.println("Member Address" +address[x]);
System.out.println("Member Contact No " +contact[x]);
System.out.println("Member Class " +type[x]);
System.out.println("Member Recommended By " +rec[x]);
}
else
{
System.out.println("没有此会员,请从新输入");
}
我想要的结果是循环回去上面从新输入,但是我这个会一直显示
("没有此会员,请从新输入")
("没有此会员,请从新输入")
("没有此会员,请从新输入")
("没有此会员,请从新输入")
("没有此会员,请从新输入")
我想另外加入一个case,就是如果输入找不到后,按2退回目录,请好心人给点思路。感谢
[解决办法]
强烈建议LZ使用面向对象的思想自己手动解决这个问题。
你可以把每个具体需要做的事情放在不同方法里面。然后方法之间互相调用下就可以实现了。
[解决办法]
楼主这样试试看行不行哈
写一个接收输入内容的方法:
public String systemIn(){
System.out.println("请输入会员号码");
// 这个后面的内容楼主应该知道怎么写的,函数的返回就是读入的内容
}
写一个对输入内容进行判断的方法:
//参数a就是输入函数的返回的内容,也就是输入内容
public void checkContent(String a){
if (targetid.equals(nirc[x])) {
System.out.println("Member ID " +id[x]);
System.out.println("Member Name " + name[x]);
System.out.println("Member NIRC " + nirc[x]);
System.out.println("Member Age " +age[x]);
System.out.println("Member Gender " +gender[x]);
System.out.println("Member Address" +address[x]);
System.out.println("Member Contact No " +contact[x]);
System.out.println("Member Class " +type[x]);
System.out.println("Member Recommended By " +rec[x]);
} else{
System.out.println("没有此会员,请从新输入");
}
}
//再写一个调度的函数
public void manager(){
String str = null;
while(true){
str = systemIn();
if("exit".equals(str)) break; //当用户输入exit的时候,就退出
checkContent(str);
}
}
然后在需要的地方调用一下就可以了,楼主试下看行不行
[解决办法]
targetid.equals(nirc[x]) 这句话改成targetid.contains(nirc[x])试一试就应该解决了
[解决办法]
targetid.equals(nirc[x]) ---》 nirc[x].contains(targetid)
用这个就应该解决你的问题了
[解决办法]
顺便说一下,楼主可以将会员抽象为一个类,然后像什么ID、Name等等都是里面的属性,也就是上面说的用面向对象的方法去做
这样更符合java的本质,因为大家都知道java就是面向对象的,如果还采用面向过程的方式那就体现不出java的优势了
PS:楼主不要太过急躁,静下心来慢慢做,我也有楼主这个阶段。上网找资料、找人问。。。。。。。。。
别人说的最多的就是什么要API、要怎么怎么,呵呵,其实对我们新手来说最怕的是急躁,只要静下心来,慢慢做
就会发现很多问题慢慢就解决了。Thinking in java以及java核心技术(卷一、卷二)这三本书都很不错,我正
在看,楼主也可以去看看的。
------解决方案--------------------
要用面向对象的思维替代自己的过程思维..
[解决办法]
楼主加油,慢慢学习
[解决办法]
System.out.println("请输入会员号码"); boolean flag=true; boolean isHas=false; while(flag) { String targetid=g.readLine(); for ( int x = 0 ; x < count ; x++) { if (targetid.equals(nirc[x])) { System.out.println("Member ID " +id[x]); System.out.println("Member Name " + name[x]); System.out.println("Member NIRC " + nirc[x]); System.out.println("Member Age " +age[x]); System.out.println("Member Gender " +gender[x]); System.out.println("Member Address" +address[x]); System.out.println("Member Contact No " +contact[x]); System.out.println("Member Class " +type[x]); System.out.println("Member Recommended By " +rec[x]); isHas=true; flag=false; } } if(!isHas) { System.out.println("没有此会员,请从新输入"); } }
[解决办法]
上面的意思是通过两个标识位来进行判断,首先肯定是一个循环,因为这样才容易让它重新输入。
一旦存在的话,就停止循环。
isHas=true;
flag=false;
flag来停止while循环。isHas用来阻止输出"没有此会员,请从新输入"
当然最好在isHas=true; flag=false;将g资源释放掉。