黑马程序员技术交流社区
标题:
问个问题
[打印本页]
作者:
18643448863
时间:
2014-9-20 10:28
标题:
问个问题
class GetMax
{
public static int getMax(int [] arr)
{ int max=arr[0];
for(int x=1;x<arr.length;x++)
{
if(arr[x]>max)
max=arr[x];
}
return max;
}
public static void main(String[] args)
{ int [] arr ={0,1,2,3,4};
int max=getMax(arr);
System.out.print("Max="+max);
}
}
复制代码
为什么函数里面 定义的变量 int max=arr[0] 不能在 for 语句里 和x变量一起定义 如 for(int x,max=arr[0];x<arr.length;x++)编译后
GetMax.java:15: 错误: 找不到符号
return max;
^
符号: 变量 max
位置: 类 GetMax
作者:
18643448863
时间:
2014-9-20 10:29
for(int x=1,max=arr[0];x<arr.length;x++)
复制代码
上面的写错 是这样 然后 出现问题
作者:
jtshawn
时间:
2014-9-20 10:39
局部变量的问题,你如果在for的条件里定义了 max ,那么这个max在运行时就和循环体一起加载到栈内存里面,当循环体结束时,max也随着循环体弾栈,就是循环一结束,max也没有了,所以return max;的是时候,就找不到max。
作者:
18643448863
时间:
2014-9-20 10:44
jtshawn 发表于 2014-9-20 10:39
局部变量的问题,你如果在for的条件里定义了 max ,那么这个max在运行时就和循环体一起加载到栈内存里面, ...
谢谢,我也有模糊的理解 ,每次知道怎么改,就是不是很清楚为什么,就有一种 就该这么改。改好之后就郁闷了,不知道咋想的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2