下面的程序编译时提示MAX,MIN没有初始化,JAVA当中不初始化不也是由JAVA系统默认为0吗?
public class aa
{
public static void main(String args[])
{
final int size=10;
int max,min,i;
int arr[]=new int[size];
for(i=0;i<size;i++)
{
arr[i]=(int)(Math.random()*100);
}
for(i=0;i<size;i++)
{
System.out.println(arr[i]);
max=arr[i] > max ? arr[i]:max;
min=arr[i] < min ? arr[i]:min;
}
System.out.println("最大值=" + max);
System.out.println("最小值=" + min);
}
}
而同样是一个程序这样写则不提示没有初始化了如下:
public class Arraymax
{
public static void main(String args[])
{
final int SIZE = 10; //常量
int table[] = new int [SIZE];
int i,max,min;
for (i=0;i<table.length;i++)
table[i] = (int) (Math.random()*100); //产生随机数
System.out.print("table: "); //输出一维数组
for (i=0;i<table.length;i++)
System.out.print(" "+table[i]);
System.out.println();
max = table[0];
min = table[0];
for (i=1;i<table.length;i++)
{
if (table[i]>max) max = table[i];
if (table[i]<min) min = table[i];
}
System.out.println("Max="+max);
System.out.println("Min="+min);
}
}
public class aa
{
public static void main(String args[])
{
final int size=10;
int max,min,i;
int arr[]=new int[size];
for(i=0;i<size;i++)
{
arr[i]=(int)(Math.random()*100);
}
for(i=0;i<size;i++)
{
System.out.println(arr[i]);
max=arr[i] > max ? arr[i]:max;
min=arr[i] < min ? arr[i]:min;
}
System.out.println("最大值=" + max);
System.out.println("最小值=" + min);
}
}
而同样是一个程序这样写则不提示没有初始化了如下:
public class Arraymax
{
public static void main(String args[])
{
final int SIZE = 10; //常量
int table[] = new int [SIZE];
int i,max,min;
for (i=0;i<table.length;i++)
table[i] = (int) (Math.random()*100); //产生随机数
System.out.print("table: "); //输出一维数组
for (i=0;i<table.length;i++)
System.out.print(" "+table[i]);
System.out.println();
max = table[0];
min = table[0];
for (i=1;i<table.length;i++)
{
if (table[i]>max) max = table[i];
if (table[i]<min) min = table[i];
}
System.out.println("Max="+max);
System.out.println("Min="+min);
}
}
解决方案 »
- jdk-6-doc.zip怎么用啊
- 怎么加入一个判定条件,根据当前线程的的名字,来做出动作。
- java 根据X、Y坐标动态加载地图 追加···
- 从Frame中弹出一个Dialog,点右上角红叉关闭Dialog时Frame也关闭,怎样让能点右上角红叉时返回Frame
- for(Employee e : employees)的用法 这是什么意思
- 请问我如何才能学好API
- 好奇的人请进来,( 分多了,快毕业了,路人也进来领分)
- 一个匿名类,把它改成成员类竟然不行,真怪??
- Thread中的一个小问题
- 请问各位大师。如何在页面里显示有很多列的表格,能把做好的JScrollPane类加进去吗?
- java中使用进度条为何不能更新进度条?
- 急~请教如何在JAI中释放文件资源
min=arr[i] < min ? arr[i]:min;//这里的max和min都没有初始化怎么能用呢
max = table[0];
min = table[0]; //这里赋值,已经被初始化了
成员变量 int 才会初始化为0
min=arr[i] < min ? arr[i]:min;//严重错误。
min = 0;max=arr[i] > max ? arr[i]:max;//
min=arr[i] < min ? arr[i]:min;//
lower0661(我的黑夜风吹不走)
实例变量和静态变量才有默认的初始值,局部变量是没有的,使用之前必须赋值!
lower0661(我的黑夜风吹不走)
实例变量和静态变量才有默认的初始值,局部变量是没有的,使用之前必须赋值!
max=arr[i] > max ? arr[i]:max;//
min=arr[i] < min ? arr[i]:min;//严重错误。=============================================
是啊,不管会不会默认初始化,你去初始化一下是一个良好的编程习惯,就算java给你初始化
main() 说白了也是一个类中的方法
在方法里定义的变量是 局部变量一定要初始化的int i,max,min;
这相当于先声明 三个变量max = table[0];
min = table[0];
这个就相当于 初始化赋值了是可以分两步进行的
局部变量不经历这一过程 所以必须指定初始化