java代码: for (int i = 1;i < 10; i++) i++; System.out.println(i); 为什么编译通不过
提示:i找不到符号,需要inti=0;想知道为什么for语句定义过i为什么放到for语句外就不行了?我要针对的是变量i,而不是我的循环对不对,代码应不应这么写。...
提示:i找不到符号,需要int i =0;
想知道为什么for语句定义过i为什么放到for语句外就不行了?
我要针对的是变量i,而不是我的循环对不对,代码应不应这么写。 展开
想知道为什么for语句定义过i为什么放到for语句外就不行了?
我要针对的是变量i,而不是我的循环对不对,代码应不应这么写。 展开
9个回答
展开全部
你的变量i定义的只是一个局部变量,定义在for循环里面,它的作用域只限制在for循环里访问。
而你的for循环没加大括号。系统默认其代码快只能有一条语句,就是你的i++,所以你的System.out.println(i); 在循环之外,而你的i在外部根本就没定义,所以找不到i。要么把i定义在循环外部 int i ; for(i = 0; i < 10; i++){ i++ ; } System.out.println(i) 这样的结果智能输出跳出循环时i的值,结果为10.
①只能这样,变量i定义在外面。
int i;
for (i = 0; i < 10; i++){
i++;
System.out.println(i);
}
②或者把输出语句放在循环体内部。
for (int i = 0; i < 10; i++){
i++;
System.out.println(i);
}
而你的for循环没加大括号。系统默认其代码快只能有一条语句,就是你的i++,所以你的System.out.println(i); 在循环之外,而你的i在外部根本就没定义,所以找不到i。要么把i定义在循环外部 int i ; for(i = 0; i < 10; i++){ i++ ; } System.out.println(i) 这样的结果智能输出跳出循环时i的值,结果为10.
①只能这样,变量i定义在外面。
int i;
for (i = 0; i < 10; i++){
i++;
System.out.println(i);
}
②或者把输出语句放在循环体内部。
for (int i = 0; i < 10; i++){
i++;
System.out.println(i);
}
展开全部
for语句中定义的i的作用范围是for语句的循环体,若在for语句外定义i,则作用范围会扩大。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不要用c的思想思考java, 如果是c的话,结果应该是3,
java是每次都要为所执行到的变量分配内存的。
i+=i++;这里前后两个i
是不同的内存 后置自增是在运行后加1所以对前面的i没影响。
两个i,java最后取的是前一个i,没办法啊,呵呵,所以只能是2。
java是每次都要为所执行到的变量分配内存的。
i+=i++;这里前后两个i
是不同的内存 后置自增是在运行后加1所以对前面的i没影响。
两个i,java最后取的是前一个i,没办法啊,呵呵,所以只能是2。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的代码等同于:
for (int i = 1;i < 10; i++)
{ i++;}
System.out.println(i); // 此时i超出定义范围了
你要把out.println放入大括号里才行,或把i的定义放到for外面
for (int i = 1;i < 10; i++)
{ i++;}
System.out.println(i); // 此时i超出定义范围了
你要把out.println放入大括号里才行,或把i的定义放到for外面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i是在循环内部定义的变量,你在循环外面打印当然找不到i值了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询