谁能告诉我这段java代码是怎么一步一步运行的么

如题所述

首先运行从main函数开始
定义一个int类型的变量n赋值为3
然后调用use函数,把变量n和字符‘a’,'b','c'作为use函数的参数,传入use函数
判断如果n等于1就输出a>>>c 然后全局变量d加一并把结果值赋给d
如果n不等于1的话就继续调用use函数并把n的值建议作为use函数的第一个参数,然后传入b,a,c等字符也传入use函数做参数,输出a>>>c,
是个递归的函数,因为在调用use函数的过程中有可能会在函数里面再调用use函数,但是在调用的过程中填入的参数n是做减一,这样的话递归到n=1的时候就不再递归下去 然后返回上一层调用,直到返回main函数中 完成追问

当n不等于1时调用自身同时n-1,这个我明白,现在就是没明白输出是怎样进行的

追答

第一次调用use(3,'a','b','c') 无输出
第二次调用use(2,'a','c','b') 无输出
第三次调用use(1,'a','b','c') 输出 a>>>c
然后下一步,输出:a>>>b
然后下一步调用use(1,'c','a','b') 输出 c>>>b
……

返回第二次掉用的地方,执行输出 a>>>c
自行下一步use(2,'b','a','c')无输出
然后下一次调用use(2,)
我用口算肯定不如计算机算,建议如果想知道程序怎么一步一步运行的就跟踪程序,单步调试,这样你就能更清晰的看出每一步是怎么走的

追问

初学。。。eclipse怎么单步执行不知道唉。。。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-06
从main函数顺序执行,中间调用上面类的的成员函数use,返回主函数继续执行

这个程序怎么运行完得到两个FatherClass Create 我感觉只能得到一个呀...
这是因为ChildClass是FatherClass的子类,JAVA初始化顺序是先初始化父类构造器,再初始化子类构造器,所以先会输出FatherClass Create ,然后输出ChildClass Create。JAVA初始化顺序如下:1. 父类static(顺序按照代码书写顺序进行)2. 子类static(顺序按照代码书写顺序进行)3. 父类非static域、构造器(顺序...

...谁能告诉一下 这两段java代码的区别啊 运行结果总是不一样flag =...
前面那段,只有在没有捕获到异常是才会执行下面的代码。而下面这段无论如何都会执行后面的代码

java菜鸟入门(java菜鸟编程)
6、适配器(变压器)模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实例给客户端。 7、桥梁模式:将抽象化与实现化脱耦,使得二者可以独立的变化,也就是说将他们之间的强关联变成弱关联,也就是指在一个软件...

我装了JAVA 我在命令提示符里面 输入java 可以.但是输入javac就不行了...
其实这里面包括了JAVA程序的开发工具(JAVAC命令等)、运行环境(JAVA命令等)和核心类包。可想而知要想运行JAVA程序。就必须安装好JDK工具包。 二、如何安装JDK? 当我们从网络上DOWN下J2SE 5.0 JDK以后(是一个可执行文件,文件名叫做jdk-1_5_0-windows-i586.exe,当然这个名字会因为对应操作系统的不同而有所区别的...

关于java运行问题。如下请大家帮忙分析一下吧?
但是运行结果确实是0,0,0,0,0 思考了一下,我觉得是因为java只有值传递没有引用传递造成的 num = num++;这道题我能不能看成这样 num = 0;temp = 0;num = temp ++;?根据java内存的分配情况来看,这个和num = num++是相等的。那么这个就可以看成 num = temp;temp = temp+1;因为java是...

北大青鸟java培训:程序员应该选择java还是c#?
很多java程序员,都觉得搞.net开发的,就是拖拖控件而已,其实我可以告诉你,说出这种话的java程序员一般都还比较小白,如果你是搞.net的,你也可以说搞java的都是拷贝别人的开源软件的代码,然后改改而已。当然改改没什么问题,谁都不喜欢重复造轮子,比如,google里面也并非全部是创新,经常”拿“别人的东西自己改吧改吧...

现实中程序员是怎样飞快敲代码的?
5.异常点的位置的处理方案已经安排好了。写代码一部分是正常业务流程,算法过程,但是另外一大块就是处理各种异常。当异常出现之后,是代码重试,报错后忽略,还是报错之后停止代码,还是报错后清理代码并重新恢复上一个状态,等等。这些都是要心理有数。6.对于如何新增源代码文件,命名函数,命名文件名,...

这是老师给我的一个代码,谁能告诉我里面的中间jf.add是干嘛用的,为什么...
JF是个框架 JF。add是往框架里面加你设置的按钮什么的对象的

学java六个月感觉啥也不会?
想学好java欲速则不达,学习java编程需要一个漫长的阶段,不能一步登天,这需要一个过程,在这个过程中慢慢积累经验扎实基础。 不管你是否有基础,只要你对Java语言感兴趣,愿意投入时间和精力去学习,那么你一定会有所收获,至于你问Java难不难,我告诉你,答案还是有一定难度的,但是并不代表你学不会呀,并不代表你不行...

学习java一般多久合适?
(其实学习java 基础部分需要时间不止一个月,至于说不止一个月,是需要你将java 基础部分完全明白,能够串起来综合运用,甚至需要两遍三遍;之所以这么说,不是为了说java 有多难,而是为了强调基础有多重要。)我想要告诉你的是学习Java不难,但是也会很艰辛的敲代码。Java程序员经常需要加班,学之前...

相似回答