Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java For循环变量问题_Java_Android_For Loop_Syntax Error - Fatal编程技术网

Java For循环变量问题

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

我开发了以下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);

    }
}

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

    }

    }