首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请教怎么循环

2012-01-07 
请问如何循环System.out.println(请输入会员号码)String targetidg.readLine()for ( int x 0 x

请问如何循环
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核心技术(卷一、卷二)这三本书都很不错,我正
在看,楼主也可以去看看的。
------解决方案--------------------


要用面向对象的思维替代自己的过程思维..
[解决办法]
楼主加油,慢慢学习
[解决办法]

Java code
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资源释放掉。

热点排行