小编And*_*y M的帖子

检查无限呼叫/重新调用呼叫算法

这是我试图解决的问题的一个子集.假设我已经解析了一些代码,现在我正在尝试检查它是否在逻辑上是正确的.其中一个检查是函数调用不能自己调用​​或涉及另一个相互调用的函数或一个函数相互调用的函数,依此类推.

我已经解决了这个问题,并且能够轻松地解决对自身的调用和一个级别,尽管它可能不是最佳代码.现在,性能不是问题.

这是我编写的逻辑和一个例子:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class LoopTest {

    public static void main(String[] args) {
        List<Loop> test = new ArrayList<Loop>();
        test.add(new Loop("Function1",new String[]{"Function2", "Function1"}));
        test.add(new Loop("Function2",new String[]{"Function3", "Function1"}));
        test.add(new Loop("Function3",new String[]{"Function1"}));
        checkLooping(test);
    }

    public static void checkLooping(List<Loop> input) {
        for(Loop main : input) {
            for(int i = 0; i < main.getInputSize(); i++) {
                if(main.getName().equals(main.getInputValue(i))) {
                    System.err.println("Looping condition found at " + main.getName());
                }
                for(Loop inside : input) {
                    for(int j = 0; j < inside.getInputSize(); j++) …
Run Code Online (Sandbox Code Playgroud)

java loops infinite-loop

1
推荐指数
1
解决办法
140
查看次数

标签 统计

infinite-loop ×1

java ×1

loops ×1