public class Test {
public void func1() {
for(int i = 0;i<10;i++) {
if(i==4) {
//这里需要直接返回到Test()执行func2();后面的语句,这该怎么做?
}
System.our.println("func1");
}
} public void func2() {
func1();
System.out.println("func2");
} Test() {
func2();
System.out.println("Test");
……
} public stativ void main(String [] args) {
new Test();
}
}
public void func1() {
for(int i = 0;i<10;i++) {
if(i==4) {
//这里需要直接返回到Test()执行func2();后面的语句,这该怎么做?
}
System.our.println("func1");
}
} public void func2() {
func1();
System.out.println("func2");
} Test() {
func2();
System.out.println("Test");
……
} public stativ void main(String [] args) {
new Test();
}
}
if(i == 4) break; // Out of for loop
System.our.println("func1"); 应为:System.out.println("func1");
public stativ void main(String [] args) {
new Test();
}
应为:static
public void func1() {
for(int i = 0;i <10;i++) {
if(i==4) {
return;
}
System.out.println("func1"+Integer.toString(i));
}
} public void func2() {
func1();
System.out.println("func2");
} Test() {
func2();
System.out.println("Test");
} public static void main(String [] args) {
new Test();
}
}
就是直接return,退出当前的函数,返回函数调用点,继续向下执行。
的确!要实现同样功能的话不如将func1和func2合并:
public class Test {
public void func() {
for(int i = 0;i <10;i++) {
if(i==4) {
return;
}
System.our.println("func1");
}
System.out.println("func2");
} Test() {
func();
System.out.println("Test");
……
} public stativ void main(String [] args) {
new Test();
}
}
以前不知是从书上看的还说论坛上有人说java很自由呢,现在算是看透了。
boolean test=false; //设一个标志位
public void func1() {
for(int i = 0;i <10;i++) {
if(i==4) {
test=true;
return;
}
System.out.println("func1");
}
} public void func2() {
func1();
if(test) return;//判断
System.out.println("func2");
} Test() {
func2();
System.out.println("Test");
……
} public static void main(String [] args) {
new Test();
}
}这样就要增加一些变量了