gpt4 book ai didi

java - 递归语句中声明的变量是创建新变量还是刷新原始变量?

转载 作者:行者123 更新时间:2023-11-30 03:25:12 25 4
gpt4 key购买 nike

public void readLine(int startAt){
int i = input.indexOf("(",startAt);

if(i!=-1){
readLine(i+1);
}
}

“input”是一个字符串,应该是一个等式:

12 + 8 * 2^(1/4) + 2/(2 * 7) + ( 5 * (1/2) )

当您调用该语句时,在本例中应始终为“readLine(0);”它会将一个整数“i”设置为它找到“(”的第一个位置。if 语句检查该整数是否返回了任何内容(-1 表示没有找到“(”)。因此,如果它找到了“(”然后它将再次运行该方法,但参数将是它找到的“(”字符串中的索引加一。递归将继续,直到找不到更多“(”。我会是字符串中最后一次出现的“(”

最佳答案

他们创建新变量。每个递归调用都有自己的一组变量。对于每个调用,新的变量集都会被推送到堆栈上。当调用结束时,变量将从堆栈中弹出(LIFO - 后进先出)。

关于java - 递归语句中声明的变量是创建新变量还是刷新原始变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30428268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com