首先来看一个程序:
public static void main(String[] args)
{
// TODO Auto-generated method stub
System.out.println("返回值"+testResult());
}
public static boolean test1()
{
for(int i=0;i<=5;i++)
{
System.out.println("从---- "+i+" ----开始");
if(i==3)
{
return true;//
}
System.out.println("到---- "+i+" ----结束");
}
return false;
}
}
控制台输出:
-
当i=3时,返回true,并结束循环。由此可以看出return一个值相当于跳出循环。
当删除return false -
时报错,提示必须要返回一个布尔类型的值,可是if语句已经返回了一个布尔类型的值。那么只能解释为if在for循环在,return值也只是作用在for循环内。
- 解决办法:(要么直接在最外层花括号内声明一个return,要么添加一个else语句返回一个值(在for循环外))
(变量作用域:一个变量的作用域是从声明这个变量的地方开始,到包含这个变量的花括号为止。离开作用域,变量所分配的内存空间将会被JVM 回收,此时就可以进行这个变量的重复命名,并可以重复使用。什么时候算是离开了这个作用域?当这个程序块执行完成之后,比如当循环条件不满足了以后,就自动退出这个程序)