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 |