java中途强制跳出递归

有些时候我们需要在中途强制跳出递归,而且还是需要一步跳出,而不一层一层的跳出,这时,我们可以采用抛异常的方法来实现。

 class Test {
	 static class StopMsgException extends RuntimeException {
	  }
    public static void main(String args[]) {
        try {
        	run(0);
        } catch (StopMsgException e) {
            System.out.println(e);
        }
    }

    public static void run(int t) {

        if (t > 20) {
            // 跳出
            throw new StopMsgException();
        }
        // 执行操作
        System.out.println(t);
        // 递归
        run(t + 1);
    }

}

这个小例子就是实现该功能的方法

java中途强制跳出递归,布布扣,bubuko.com

时间: 2024-08-01 11:59:09

java中途强制跳出递归的相关文章

java逼出来的递归中间

请珍惜劳动小编成果.这篇文章是原来小编,转载请注明出处. 有些时候我们须要在中途强制跳出递归.并且还是须要一步跳出,而不一层一层的跳出.这时,我们能够採用抛异常的方法来实现. class Test { static class StopMsgException extends RuntimeException { } public static void main(String args[]) { try { run(0); } catch (StopMsgException e) { Syst

Java学习之理解递归

Java支持递归.递归是根据自身定义内容的过程.就Java编程而言,递归是一个允许方法调用自身的特性.调用自身的方法被称为递归.典型的例子就是阶乘的计算,N的阶乘就是从1到N之间所有整数的乘积. 当方法调用自身时,在堆栈上为新的局部变量和参数分配内存,并使用这些新的变量从头开始执行方法的代码.当每次递归调用返回时,将旧的局部变量和参数从堆栈中移除,并将执行控制恢复到方法内部的调用点.递归方法被称为"望远镜式"的方法,可以自由伸缩. 许多例程的递归版本,它们的执行速度比与之等价的迭代版本

8皇后以及N皇后算法探究,回溯算法的JAVA实现,非递归,循环控制及其优化

上两篇博客 8皇后以及N皇后算法探究,回溯算法的JAVA实现,递归方案 8皇后以及N皇后算法探究,回溯算法的JAVA实现,非递归,数据结构“栈”实现 研究了递归方法实现回溯,解决N皇后问题,下面我们来探讨一下非递归方案 实验结果令人还是有些失望,原来非递归方案的性能并不比递归方案性能高 代码如下: package com.newflypig.eightqueen; import java.util.Date; /** * 使用循环控制来实现回溯,解决N皇后 * @author [email pr

java中强制类型转换

在Java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换. 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换.因为子类拥有比父类更多的属性.更强的功能,所以父类转换为子类需要强制.那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的. 当我们用一个类型的构造器构造出一个对象时,这个对象的类型就已经确定的,也就说它的本质是不会再发生变化了.在Java中我们可以通过

面试题:在Java中如何跳出当前的多重嵌套循环?

/* * 在Java中如何跳出当前的多重嵌套循环? * 在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号, * 然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环 */ package java基础题目; public class Test3 { public static void main(String[] args) { method1(); method2(); } //方法一: public static void method1(){ ok:fo

c#中的里氏转换和Java中强制类型转换在多态中的应用

在c#中: 注意: 子类并没有继承父类的构造函数,而是会默认调用父类那个无参数的构造函数. 如果一个子类继承了一个父类,那么这个子类除了可以使用自己的成员外,还可以使用从父类那里继承过来的成员.但是父类永远都只能使用自己的成员,而不能使用子类的成员. 子类之间也不能互相使用对方的成员. 里氏转换的概念: 1).子类可以赋值给父类 2).如果父类中装的是子类对象,那么可以讲这个父类强转为子类对象. namespace 里氏转换_接口练习 { class Program { static void

【面试】在Java中如何跳出当前的多重嵌套循环?

2020/02/01 请你说明一下,在Java中如何跳出当前的多重嵌套循环? 考察点:循环 参考回答: 在最外层循环前加一个标记如A,然后用break A;可以跳出多重循环.(Java中支持带标签的break和continue语句,作用有点类似于C和C++中的goto语句,但是就像要避免使用goto一样,应该避免使用带标签的break和continue,因为它不会让你的程序变得更优雅,很多时候甚至有相反的作用,所以这种语法其实不知道更好),根本不能进行字符串的equals比较,否则会产生Null

Java中如何跳出多重循环?

在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环.例如, ok: for(int i=0;i<10;i++) { for(int j=0;j<10;j++) { System.out.println(“i=” + i + “,j=” + j); if(j == 5) break ok; } } 另外,不建议使用标号这种方式,而是让外层的循环条件表达式的结果可以受到里层循环体代码的控制,例如,要在二维数组中

java 树的遍历(递归与非递归)

package wangChaoPA实习工作练习.com.leetcode;import java.util.ArrayList;import java.util.Stack;class TreeNode{    TreeNode left;    TreeNode right;    int val; TreeNode(int x)    {        val = x;    }}public class TreeTrivel{    // 测试    public static void