对于循环变量问题

时间:2013-01-29 17:42:03

标签: 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("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);

    }
}

9 个答案:

答案 0 :(得分:8)

for循环后,您有一个不必要的分号:

for(int a = 0; a < list.size(); a ++);

如果你不删除它,它与写作相同:

for(int a = 0; a < list.size(); a ++) { }
// a isn't in scope here any more.

if条件之后你有同样的错误。你也必须摆脱那个分号。

另外,我认为typeReturnedString,您将其与==进行比较。这是个坏主意。您必须使用.equals(),如果您想检查两个字符串是否具有相同的内容,请参阅:

How do I compare Strings in Java

答案 1 :(得分:4)

删除for循环末尾的半冒号

答案 2 :(得分:4)

你的for循环结束时有一个备用分号。删除它应解决问题。

答案 3 :(得分:4)

for(int a = 0; a < list.size(); a ++);

删除最后的;

答案 4 :(得分:4)

你必须删除“;”在for之后和if之后。

您改进的代码:

    for(int a = 0; a < list.size(); a ++) //WITHOUT SEMICOLON !
    {

    if(typeReturned == list.get(a)) //WITHOUT SEMICOLON !
    {

         editTime.setSelection(a);
    }

    }

现在应该没问题。

答案 5 :(得分:3)

之后你有两个分号
for(int a = 0; a < list.size(); a ++);

此后如果

if(typeReturned == list.get(a));

删除它们并且它将起作用

答案 6 :(得分:2)

iffor语句后删除分号。

for(int a = 0; a < list.size(); a ++);   
if(typeReturned == list.get(a));

for循环和if语句不是完整的语句,后面加一个分号。它们是条件语句,用于检查和执行它们之后的块或行。

答案 7 :(得分:0)

您的代码中只有语法错误,也是其他人提到的。

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);

    }

    }

希望这有帮助。

答案 8 :(得分:0)

从if和for语句中删除半冒号。