public class Test{ static int i; public static void main(String args[]){
for( int i=0; i<10; i++ ){ } i=100; } } 这样就对了。
朋友们,这里很牛的人物还是有的,像“一世清白”,wangzhanhai,我认为写的都不错,总之,上边java的写法是错的,再有就是源程序中的c++部分,i的作用域是指从i向上数的第一个“{”开始到它下边与之对应的“}”结尾的!!另外,java部分,楼上的写法是对的,因为for语句里的i=100是来自于成员变量static int i;这句定义的i,而且main函数是static的,只能引用static的成员变量!!! 偶也是菜鸟,希望我的想法是对的,欢迎与大家交朋友,特别是刚才提到的"一世清白“与wangzhanhai,ok,改天见!!!1
Maybe anybody is right ,because compiler is different ,so result is different. But in java scope of variable "i" is in "for" loops.
java的作用域本来就是这样的。
如: for(int i=0;i<10;i++)
{
}
int i;
肯定会出错的。
a{
int i=0;
b{
int i=1;
}}
修改较大氛围定义的能力在C++中我就不清楚了——我不用C++
a{
int i=0;
b{
int i=1;
}}
修改较大范围定义的能力。在C++中我就不清楚了——我不用C++
for(int i=0;;){
}和int i=0;
for(;;){
}
是一样的。
C++是沿袭了C的语法在C里,这样写
for(int i=0;i<10;i++){
}
语法上是错误的,C要求变量在执行语句前面定义,所以不能定义在for里
必须写成
int i;
for(i=0;i<10;i++){
}而C++要保持与C的一定的兼容性,i在里面还是在它的前面定义都是一样的效果
c++中错的可以{{}}
很想和你交个朋友,你的回答总会给我一些提示。你是不是也回答了我的有关java的构造函数的问题。我很像交一些玩技术的朋友。
Java我就不太清楚了。
Eclipse下试过。
肯定是错的,因为出了作用域了,那个i就是一个没有被定义的变量了.
javac test.java
test.java:6: cannot resolve symbol
symbol : variable i
location: class test
i=100;
^
1 error
static int i;
public static void main(String args[]){
for( int i=0; i<10; i++ ){
}
i=100;
}
}
这样就对了。
偶也是菜鸟,希望我的想法是对的,欢迎与大家交朋友,特别是刚才提到的"一世清白“与wangzhanhai,ok,改天见!!!1
But in java scope of variable "i" is in "for" loops.
C++程序在Dev-C++下错误。
Java程序在Jcreator+JDK1.4下错误。错误原因一样,相信大家都知道,是变量作用域问题。
看来是编译器的问题 可能微软的编译器做了容错处理
java的通过不了
是不是要改成: public static void main(String args[]){
My ICQ ID:348732090