如何调用新方法时结束当前方法?

flcat2003 2009-06-21 08:14:36
  您好!我刚刚接触javase面向对象,请问:
  假如在一个类中定义了两个方法,a();和b();
public class A{
public void a(){

Scanner input=new Scanner(System.in);
System.out.println("请输入1");
if(input.nextInt()==1) b();

System.out.println("这是方法a");
}

public void b(){

Scanner input=new Scanner(System.in);
System.out.println("请输入2");
   if(input.nextInt()==2) b();

System.out.println("这是方法b");
}
}

然后再创建一个带有main()方法的类
public class B{
public static void main(String[] args)
A p=new A();
p.a();
}
}

然后在程序中反复输入1和2。当输入一个非1和2的数字时,该程序的结尾并不是输入"这是方法a"或这是方法b"。而是输出一堆"或这是方法b""或这是方法a".
如:
或这是方法b
或这是方法a
或这是方法b
或这是方法a
或这是方法b
或这是方法a

  这说明两个方法发生了类似递归的互锁。有没有办法优化这个程序,即方法a调用方法b时结束方法a,而不是无穷的嵌套去,请前辈高人解答.
...全文
74 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuzhusany 2009-06-22
  • 打赏
  • 举报
回复
加return,它有两个含义,一个是返回值,另一个作用就是结束方法
lenthpom 2009-06-22
  • 打赏
  • 举报
回复
if(input.nextInt()==1){
b();
return;
}
if(input.nextInt()==2){
a();
return;
}
ligoou 2009-06-22
  • 打赏
  • 举报
回复
加上return
flcat2003 2009-06-22
  • 打赏
  • 举报
回复
谢谢大家,明白了.
swandragon 2009-06-21
  • 打赏
  • 举报
回复
public void b(){
Scanner input=new Scanner(System.in);
System.out.println("请输入2");
   if(input.nextInt()==2) a();

System.out.println("这是方法b");
}

62,614

社区成员

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

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