首页 > 解决方案 > 我运行像 for(String Day : days) 这样的 for 循环,我想在 for 循环之外打印 for 循环的数据怎么做?

问题描述

我在 Java 中运行一个 for 循环,例如for(String Day : days). 我想在 for 循环之外打印 for 循环的数据。这个怎么做?

 String[] day = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday"};
  List<String> days = Arrays.asList(day);
  Collections.shuffle(days);
  
     for(String Day : days){
        //System.out.println(Day + " ");
     }

 String[] persons = {"john", "Bob", "Smith", "Tom", "Ryan"}; 
  List<String> names = Arrays.asList(persons);
  Collections.shuffle(names);
  
     for(String name : names){
        //System.out.println(name + " ");
     }

我想像 System.out.println(name+" " + Day+" "); 但它显示找不到符号的错误。如何解决?

标签: java

解决方案


我想像 System.out.println(name+" " + Day+" "); 但它显示找不到符号的错误。如何解决?

变量的范围,Day仅限name于声明它们的循环,因此试图在循环之外访问它们将导致编译失败。

您可以通过基于索引访问元素来修复它。

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        String[] day = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" };
        List<String> days = Arrays.asList(day);
        Collections.shuffle(days);

        String[] persons = { "john", "Bob", "Smith", "Tom", "Ryan" };
        List<String> names = Arrays.asList(persons);
        Collections.shuffle(names);

        for (int i = 0; i < Integer.min(days.size(), names.size()); i++) {
            System.out.println(names.get(i) + "\t" + days.get(i));
        }
    }
}

输出:

john    Friday
Ryan    Thursday
Tom Tuesday
Bob Wednesday
Smith   Monday

推荐阅读