问题描述
- 请教各位 一个简单的 java 小问题
-
int arr[]={1,2,3,4,5,6,7,8,9,10}; int i,temp; for(i=0;i<10;i++){ } System.out.println("a"+i); temp=arr[0]; for(i=0;i<9;i++){ arr[i]=arr[i+1]; } System.out.println("b"+i); System.out.println("c"+i); arr[i]=temp; for(i=0;i<10;i++){ } 在这里 输出的结果是 a10 b9 c9 我大概明白 因为通过 for 这个循环之后, i 的值就被改变了。可我我想请教一下这个代码的底层原理, 是因为 我们一开始创建了一个全局变量 int i ,了 ,所以 i 就会改变了么? 请各位能帮忙解释一下 有没有一个专业的名词或者概念 是关于这个的。 表达能力有点差 不好意思各位i 不知道我说清楚了没有。。。谢谢了 各位
解决方案
for(i=0;i<9;i++){
arr[i]=arr[i+1];
}
底层相当于这样的代码:
i = 0;
start:
if !(i < 9)) goto end;
arr[i]=arr[i+1];
i++;
goto start;
end:
解决方案二:
因为for循环中有i++,这个会改变i的值
解决方案三:
i就一个变量,在循环里改变了值,所以输出的时候就变了,了解这个只需要了解for循环即可
时间: 2024-11-10 00:43:56