「java递归break」java递归返回值
本篇文章给大家谈谈java递归break,以及java递归返回值对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java怎么退出所有递归?
比如这是一个递归:
public int a(int p){
...
p--;
a(p);
...
}
那么我想要退出递归时:
public int a(int p){
...
if(p == 0){
throw new Exception("blahblah"); //抛出异常
}
p--;
a(p);
...
}
调用这个递归时:
public static void main(String[] args){
try{
a(2);
}catch(Exception e){
//抛出异常后执行
}
}
简单来说就是抛出异常后会执行catch内的语句,与递归本身的返回值无关。
关于java中的递归
hi(n
+
1);
System.out.println("你好"
+
n);
这两句调换一下,就不会反了。
因为最后一个递归调用最先返回,而第一次打印就是在这个返回之后调用的。
执行过程:
main-hi(1)-hi(2)-hi(3)...hi(20)。
hi(19):
hi(20)返回,
print(19).
返回
hi(18):
hi(19)返回,
print(18).
返回
...
hi(1):hi(2)返回,print(1).返回
main:
下一句,退出.
递归只重复函数的内容。
如果是非引用型参数,其值在递归返回后不会受影响。这个跟普通的函数调用没有区别。
但是,递归需要注意两个基本问题:
1)
必须要有终止条件。
2)
递归层次不能太深,否则可能引起调用栈溢出,导致程序崩溃。
java程序中如何统计递归次数
System.in.read(b); String res = new String(b).trim(); if (res.equals("over")){System.out.println("程序结束");break;}int i = Integer.parseInt(res.trim()); if (i = 0)continue;System.out.println(i + "!=" + instance.factorial(i)); System.out.println("递归了 " + instance.getCount() + " 次");}catch (IOException e){ e.printStackTrace();}catch (NumberFormatException ne){System.out.println("请输入正整数");}}} // 存递归次数的变量 private int count = 0; public int getCount(){return count;} public long factorial(int i){// 将递归次数清零,若要统计所有的,则将count注释即可// count = 0;
java编程问题(递归)
递归,这个是输入是String的时候,输入无限制 ,算法也简单
public class TestDouble {
public static void main(String[] args) {
System.out.println(doubleDigits("1345634234521313"));
}
public static String doubleDigits(String s){
if(s.length()==1)
return s+s;
else
return doubleDigits(s.substring(1))+s.charAt(0)+s.charAt(0);
}
}
递归,这个是输入纯数字的时候,但是数字长了会溢出 ,算法也不是很复杂
算法:n*11*(10的2i-1次方) n为第i位数值,i就是第几位
public class TestDouble1 {
public static void main(String[] args) {
System.out.println(doubleDigits(13456342));
}
public static long doubleDigits(long n) {
if (n/10==0)
return n*11;
else
return (long) (doubleDigits(Long.parseLong(String.valueOf(n).substring(1)))+11*Long.parseLong(String.valueOf(n).substring(0,1))*Math.pow(10, 2*String.valueOf(n).length()-2));
}
}
怎么写 java 递归?解决删除文件夹以及子文件
import java.io.File;
public class class_99 { /**
* @param args
*/
static boolean eqs(String path)
{
boolean flag = false;
File file = new File(path);
if(!file.exists())
{
return false;
}
if(!file.isDirectory())
{
return false;
}
String[] str = file.list();
System.out.println("============"+file.list().length);
for(int i=0;istr.length;i++)
{
File fi = new File(path+"/"+str[i]);
if(path.endsWith(file.separator))
{
fi = new File(path+str[i]);
}
else
{
fi = new File(path+fi.separator+str[i]);
}
if(fi.exists()fi.list().length==0)//如果是文件夹且没有东西了 就删除 前提是没有文件的存在 如果有的话
//需要另做处理 这里只是教你怎么删除空文件夹
{
java.io.File myFilePath = new java.io.File(path+"/"+str[i]); myFilePath.delete();
}
if(fi.isDirectory())//如果文件假内还有 就继续调用本方法
{
eqs(path+"/"+str[i]);
}
}
return true;
}
public static void main(String[] args) {
String str ="";//定义一个str接受字符串 eqs("D:\\text");
}
}
java递归break的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java递归返回值、java递归break的信息别忘了在本站进行查找喔。
发布于:2022-11-28,除非注明,否则均为
原创文章,转载请注明出处。