Topic: 关于数组中变量的调用,和复值的请教

  Print this page

1.关于数组中变量的调用,和复值的请教 Copy to clipboard
Posted by: King国王King
Posted on: 2007-01-26 14:37

public class ArrayTest{
public static void main(String [] args){
int i;
int [] A=new int[5];
for(i=0;i<5;i++)
A[i]=i;
for(i=A.length-1;i>=0;i--)
System.out.println("A["+i+"]="+A[i]);
}
}

在for(i=0;i<5;i++)中调用了int i的 i ;并给它实例化。那么A[i]=i;中的两个 i 也都是调用for(i=0;i<5;i++)的 i 吗?

那么for(i=A.length-1;i>=0;i--)中的 i 是调用哪里的 i 呢 ?

小弟无知,请大哥们指点一下。

2.Re:关于数组中变量的调用,和复值的请教 [Re: King国王King] Copy to clipboard
Posted by: wmkm0113
Posted on: 2007-01-26 15:01

我觉得是这样的
首先定义了一个变量i
第一重for循环的时候给i 赋值,然后执行A[i]=i;
这时候进入第二重循环,再一次为i 赋值,然后循环。
所以A[i]=i;中的两个 i 都是调用for(i=0;i<5;i++)的 i
for(i=A.length-1;i>=0;i--)中的 i 和之前的i是同一个。

不过程序这样写的话,运行时候输出的基本都是“A[0]=0”。

3.Re:关于数组中变量的调用,和复值的请教 [Re: King国王King] Copy to clipboard
Posted by: King国王King
Posted on: 2007-01-26 15:15

最后的结果为:
A[4]=4
A[3]=3
A[2]=2
A[1]=1
A[0]=0

4.Re:关于数组中变量的调用,和复值的请教 [Re: King国王King] Copy to clipboard
Posted by: wmkm0113
Posted on: 2007-01-26 15:37

刚才没注意函数范围

程序是先对数组的各个成员赋值,然后才输出,所以会出现你的那个结果。

由于程序中定义的i是全局变量,所以两个循环中使用的i都是同一个。

5.Re:关于数组中变量的调用,和复值的请教 [Re: King国王King] Copy to clipboard
Posted by: King国王King
Posted on: 2007-01-26 21:52

既然 i 用的是同一个 int i中的,那么下面的程序
public class Bubble Sort{
public static void main(String [] args){
int i,j;
int intArray[]={30,1,-9,70,25};
int l=intArray.length
for(i=0;i<l-1;i++)
for(j=i+1;j<1;j++)
if(intArray[i]>intArray[j]){
int t=intArray[i];
intArray[i]=intArray[j];
intArray[j]=t;
}
for(i=0;i<l;i++)
System.out.println(intArray[i]+"");
}
}
中的for(i=0;i<l-1;i++)
for(j=i+1;j<1;j++)的for(j=i+1;j<1;j++)语句的 i 调用的是for(i=0;i<l-1;i++)中的 i ,而不是调用 int i,j中的 i .

这是为什么?

6.Re:关于数组中变量的调用,和复值的请教 [Re: King国王King] Copy to clipboard
Posted by: 嚼花仔
Posted on: 2007-01-26 22:23

应该都是调用了一个 i 也就是在int i;的 i


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923