Java For循环变量问题
我开发了以下for循环,用于在下拉列表中设置数据。如果我在.get方法中使用一个数字来选择和比较单击的项目,那么这将非常有效,但是对于设置的整数值来说,这显然是无用的 我得到的错误是'a'变量无法解析为变量 我真的不知道为什么 代码如下:Java For循环变量问题,java,android,for-loop,syntax-error,Java,Android,For Loop,Syntax Error,我开发了以下for循环,用于在下拉列表中设置数据。如果我在.get方法中使用一个数字来选择和比较单击的项目,那么这将非常有效,但是对于设置的整数值来说,这显然是无用的 我得到的错误是'a'变量无法解析为变量 我真的不知道为什么 代码如下: List<String> list = new ArrayList<String>(); list.add("-"); list.add("Medical"); list.add("Business"); list.add("Famil
List<String> list = new ArrayList<String>();
list.add("-");
list.add("Medical");
list.add("Business");
list.add("Family");
list.add("Other");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
editTime.setAdapter(dataAdapter);
for(int a = 0; a < list.size(); a ++);
{
// Error on the 'a' variable - cannot be resolved to a variable.
if(typeReturned == list.get(a));
{
// Error on the 'a' variable - cannot be resolved to a variable.
editTime.setSelection(a);
}
}
for循环后有一个不必要的分号: 如果不删除,则与写入相同:
for(int a = 0; a < list.size(); a ++) { }
// a isn't in scope here any more.
在你的if状态之后,你也犯了同样的错误。你也必须去掉分号
另外,我认为typeReturned是一个字符串,您将它与==进行比较。那是个坏主意。必须使用.equals,如果要检查两个字符串是否具有相同的内容,请参阅:
删除for循环末尾的分号在for循环末尾有一个备用分号。删除该选项可以解决问题
for(int a = 0; a < list.size(); a ++);
删除该文件;最后。必须删除;在for之后和if之后
您的改进代码:
for(int a = 0; a < list.size(); a ++) //WITHOUT SEMICOLON !
{
if(typeReturned == list.get(a)) //WITHOUT SEMICOLON !
{
editTime.setSelection(a);
}
}
现在应该可以了。for后面有两个分号
for(int a = 0; a < list.size(); a ++);
如果同时删除这两个语句,它将起作用请删除if和for语句后面的分号
for(int a = 0; a < list.size(); a ++);
if(typeReturned == list.get(a));
for循环和if语句不是完整语句,请在它们后面加分号。它们是用于检查和执行后面的块或行的条件语句。您的代码中也有其他人提到的语法错误 Java中的分号表示语句的结尾,因此for循环在遇到第一个分号时结束,而不考虑后面的大括号。代码的其余部分被视为一个单独的块,变量“a”仅在for循环中是局部的,因此在第一个分号之后不可见 if语句后的分号也是如此
for(int a = 0; a < list.size(); a ++); //** REMOVE THIS SEMICOLON
{
// Error on the 'a' variable - cannot be resolved to a variable.
if(typeReturned == list.get(a)); //** REMOVE THIS SEMICOLON
{
// Error on the 'a' variable - cannot be resolved to a variable.
editTime.setSelection(a);
}
}
希望这有帮助。从if和for语句中删除分号。或错误日志-名称不重要:@Ty221,没有错误。@Ty221不会按原样编译,因此没有堆栈跟踪。对不起,我的英语说得不好,我不是英语国家的人。我提高了这一点,你的英语比我的波兰语好得多;我的朋友,这只是一个语法错误,逻辑没有问题。是的,对于如何执行特定任务以获得相同的期望结果,您可能有不同的方法,这将是您的“逻辑”,但有一个额外的分号、逗号、点等是语言语法的一部分。
for(int a = 0; a < list.size(); a ++);
if(typeReturned == list.get(a));
for(int a = 0; a < list.size(); a ++); //** REMOVE THIS SEMICOLON
{
// Error on the 'a' variable - cannot be resolved to a variable.
if(typeReturned == list.get(a)); //** REMOVE THIS SEMICOLON
{
// Error on the 'a' variable - cannot be resolved to a variable.
editTime.setSelection(a);
}
}