Java方法相互调用会出现死循环的拓展(if语句的方法完成循环结构)

今天初次学到Java方法的时候发现一个问题,就是写了一个方法,里面调用另外一个方法,但是如果该方法里面又调用了第一个方法会出现怎么样的问题呢?

	public static void method(int a) {
		a++;
		method1(a);
	}
	
	public static void method1(int a) {
		a++;
		method(a);
	}
	
	public static void main(String[] args) {
		method(0);	
	}

在这里我们定义两个方法,每个方法都是把参数自加1然后调用对方,很显然,当主方法调用其中任意一个方法的时候 ,就会造成方法的死循环当中去。
这时我萌生一个大胆的想法,既然能达成循环,加上特定的条件如循环起点,终点,步长不就可以构成一个循环吗,而且实践之后发现,最终可以达到用判断语句就可以达成循环的方法!
简单来说就是锤子造飞机!
下面是实现代码

//定义两个方法,让他们相互调用对方达成循环效果,加上步长和判断就可以变成循环语句
		public static void for1(int a,int times) {
			if(a<=times) {
				System.out.println(a);
				a++;
				x(a,times);
			}
		}
		
		public static void x(int a,int times) {
			if(a<=times) {
				for1(a,times);
			}
		}
		
		public static void main(String[] args) {
			for1(0,10);
		}

简单来说就是两个方法都判断一下达到循环终点没,如果到了循环终点就跳出互相调用的这个死循环

上面的方法for1的参数:

  1. 起点值
  2. 终点值
    从起点值开始每次循环加一,直到终点值为止

虽然完成了一个简单的循环结构,但也只是简单的循环而已,于是,带有循环起点,循环终点,步长参数的比较复杂的方法就完成了

//先调用这个
	public static void for1(int print,int times) {//参数为输出的数和次数,每次加一
		int b =0;
		if(b

原谅英语学渣参数变量只能想到a,b,c到最后看的头昏,为了不让读者头昏,写了尽可能多的注释。。。。。
最后的输出结果为
Java方法相互调用会出现死循环的拓展(if语句的方法完成循环结构)_第1张图片

因为注释写的足够多了,所以就不罗嗦了,主要说下两个for1的用法
我在main方法里面的第一个for1方法为以10(第一个参数)开头,输出并加一10(第二个参数)次,
第二个是以第一个参数(50),循环终点为第二个参数(10),循环起点为第三个(0),步长默认为1,可以自己添加参数为步长并且修改相关代码达到**for(输出,循环终点,循环起点,步长)**构成一个差不多的for循环!笔者就不赘述了。

总结

其实这个东西也是无意中才发现的,搜了下,网上还没有相关的文章,所以钻个空,顺便开通csdn一直没写过啥东西,刚好,诶!就是第一篇文章了(计划通)

你可能感兴趣的:(Java,严谨有趣的Java)