Java for循环解释

时间:2013-12-04 11:44:02

标签: java for-loop

我很感激我在程序中找到的一些帮助,但是我无法理解它,我已经通过评论猜到了它的作用,但如果我错了,请纠正我。

 for(String[] movieArray:movie)
        {
            for(String data:movieArray)
            {
                if(data!=null){ //If data is not empty then it writes...
                jTextArea1.append(data+", "); //...this to the textarea.
                }
                else{ //If data is empty, then it will stop.
                empty=true;
                break;
                }
            }
            if(empty==false){ //??
            jTextArea1.append("\n"); 
            }
        }
    }                                            

4 个答案:

答案 0 :(得分:1)

在数组movieArray中的所有元素都不是null之后,它们将被附加到jTextArea1,而empty将保留false(提供最初是false

在内部for结束后,如果\nempty,它会附加一个换行符(false)(如果第一个中的情况会发生这种情况语句满意),否则如果empty设置为true(数组中有null元素),则不会打印新行字符。

以下是通过示例更好地理解它的方法。

movie = {{"1", "2", "3"}, {"4", "5", "6"}}; // Example 1

jTextArea1将是

1, 2, 3, 
4, 5, 6,

如果

movie = {{"1", null, "3"}, {"4", "5", "6"}}; // Example 2

jTextArea1将是

1, 4, 5, 6,

这是因为在第二种情况下,数组中的一个元素是null,因此在将for设置为empty之后它突然出现true。由于空为true,因此不会打印新的换行符。

答案 1 :(得分:0)

您的意见是对的。

/**if no one of the data objects is empty, the boolean `empty` is 
 *still false and then a \n is added to the textarea.
 */
if(empty==false){ 
    jTextArea1.append("\n"); 
} 

empty==false!empty

相同

答案 2 :(得分:0)

看起来像是为了我...

 if(empty==false){ //??
  jTextArea1.append("\n"); 
 }

应该在for循环中

答案 3 :(得分:0)

 for(String[] movieArray:movie)

这意味着 - 循环将继续,直到影片数组中存在一个值。 它相当于

for(int i =0; i<movie.length();i++)
    String [] movieArray = movie[i];

WHile 2nd for for循环,for(String data:movieArray) 表示此处使用您之前创建的movieArray。此循环将继续执行,直到movieArray中存在元素。

以下是您提到的增强型for循环的表示。

for(int i =0; i<movie.length();i++){
   for(int j = 0; j<movie[0].length(); j++){