黑马程序员技术交流社区
标题:
for循环与变量的问题~
[打印本页]
作者:
Makise_Kurisu
时间:
2015-12-5 00:00
标题:
for循环与变量的问题~
for循环外定义了一个变量,在for循环里第一个表达式初始化,这个变量的初始化值可以被循环外的其他运算调用
如下:
int x;
for(x=1;x>2;x=x+2){
System.out.println("执行");
}
int y=x+1;
问 循环没有执行, x初始化为1,能否参与y的运算? 为什么?
作者:
汐枫wait
时间:
2015-12-5 07:18
可以的,因为你给y赋了值
作者:
雪山飞熊
时间:
2015-12-5 09:21
去测试一下,看编译能不能通过。
作者:
Kalsifa
时间:
2015-12-5 09:49
没问题,参与运算了,最后是2
作者:
王帅---
时间:
2015-12-5 10:45
int x;
for(x=1;x>2;x=x+2)
可以写为:
int x=1;
for(x;x>2;x=x+2)
作者:
hi2015
时间:
2015-12-5 11:08
可以的,程序从上往下执行,会将 int y=x+1; 这个语句执行一次。
执行完后,y=2
作者:
再续啸傲
时间:
2015-12-5 12:55
get and look look
作者:
八宝
时间:
2015-12-5 13:38
可以 你的int x 声明在for循环外面,然后for循环的语句会执行到第一句初始化你的x变量值,如果条件没达成不会执行for里面的语句x已经被赋值了,因此可以参与y的运算
作者:
Jerson_ZF
时间:
2015-12-5 14:37
可以参与y的运算。因为x的作用域是整个函数体,其中包括定义y的语句部分,所以能够参与运算。
作者:
虔诚精
时间:
2015-12-5 20:28
本帖最后由 虔诚精 于 2015-12-5 20:31 编辑
for循环里给x赋值为1了,这样
int x=1;
for(x;x>2;x=x+2)编译不能通过,因为for(初始化值,条件表达式,增量){}
作者:
秋alin
时间:
2015-12-5 21:23
作用域的问题呀,在for语句,最后到不了y的赋值语句把!没编译,你可以先编译看下。。
作者:
hxh362805079
时间:
2015-12-5 21:33
可以通过把
作者:
Good_Man
时间:
2015-12-5 21:38
嗯,可以,这就是变量的作用域范围,,你可以 多查下这方面的知识
作者:
zmttt
时间:
2015-12-5 21:44
可以 y的运算在for循环外,结果为2
作者:
LSD-ZWH
时间:
2015-12-5 22:13
因为x的值小于2,在判断时候为false所以不会执行里面的循环体,跳出循环,x不能参加y值得运算
int x;
for(x=1;x>2;x++)
你的x是定义在for循环外的
如果你写的是
for(int x = 1;x>2;x++)
这样的话不会参与y值得运算,而且会报错
作者:
LSD-ZWH
时间:
2015-12-5 22:15
LSD-ZWH 发表于 2015-12-5 22:13
因为x的值小于2,在判断时候为false所以不会执行里面的循环体,跳出循环,x不能参加y值得运算
int x;
for( ...
打错了 多大了一个不 x能参加y值运算
作者:
金金金小天
时间:
2015-12-5 22:24
新手报到
作者:
liuzhipeng
时间:
2015-12-6 00:25
学完了 回头在看还是有点蒙啊!
作者:
小小的程序员
时间:
2015-12-6 09:15
楼上说的很正确 参与运算但不循环
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2