four systems Ответов: 2

Java для цикла ! не выводит содержимое массива


Код, который нужно распечатать содержимое массива , выводит такие слова содержание как secuence но не печатает содержимое, как спутниковые номера, отпечатки CS и после четырех итераций отпечатки спутники, то после четырех итераций навигации, а затем Honmgyan, должны распечатать
CS
Программное обеспечение
Спутник
Ява
Навигация
Андроид
Хунъянь
Код

public class ReadAndWriteFromArrays
  {     
    public static void main(String[] args)
    {
    BufferedWriter bw = null;
    FileWriter fw = null;                                 
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

            String word[];
            word = new String[4];
            word[0] = "Software";
            word[1] = "Java";
            word[2] = "Android";
            word[3] = "Code";

            String Satellite[];
            Satellite = new String[4];
            Satellite[0] = "CS";
            Satellite[1] = "Satellite";
            Satellite[2] = "Navigation";
            Satellite[3] = "Hongyan";

                for(String Ad : Satellite)
                for(String Ac : word)
                {
                    String FILENAME = "F:\\"+ Ad +".html";
                    try
                    {
                        System.out.print("Word: " + Ad);
                        String French = reader.readLine();

                        System.out.print("Words:" + Ac);
                        String Android = reader.readLine();

                        System.out.print("a: ");
                        String a = reader.readLine();   

                        System.out.print("b: ");
                        String b = reader.readLine();
                    }

                    catch(IOException d)
                    {                                             
                        d.printStackTrace();
                    }
                    finally{
                        try {
                            if (bw != null)
                                bw.close();

                            if (fw != null)
                                fw.close();
                        } catch (IOException ex) {
                            ex.printStackTrace();
                        }
                    }
                }
            try {
                if (bw != null)
                    bw.close();

                if (fw != null)
                    fw.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
}              
}


Что я уже пробовал:

изменено для циклов , есть еще один способ написать несколько циклов for, чтобы различное содержимое массива печаталось как нумерованное

Richard MacCutchan

Я только что протестировал ваш код, и он, похоже, работает правильно. Однако из вашего описания я предполагаю, что вам нужно использовать значения индекса массива в одном цикле for, а не в конструкциях foreach.

2 Ответов

Рейтинг:
1

Richard MacCutchan

for(int i = 0; i < 4; ++i)
{
//    String FILENAME = "F:\\"+ Ad +".html";
    System.out.println("Words:" + Satellite[i]);
    System.out.println("Word: " + word[i]);
}


four systems

Thancs, а как насчет кода, что он делает, это берет пользовательский nput, а затем печатает из массива Satellite и Word, так что если пользователь вводит Android, массивы автоматически добавляют значения

Richard MacCutchan

Вам нужно использовать список<t> или аналогичный динамический тип коллекции, чтобы вы могли добавлять в него элементы по мере выполнения программы.

Рейтинг:
0

Jochen Arndt

У вас есть вложенный цикл. Таким образом, внутренний код будет выполнен 4 * 4 = 16 раз.

Если вы точно знаете что оба массива имеют одинаковый размер и соответствующие элементы в одном индексе просто используйте один цикл и распечатайте элементы:

for (int i = 0; i < word.length; i++)
{
    System.out.println(Satellite[i]);
    System.out.println(word[i]);
}
Вышеизложенное будет распечатано в соответствии с просьбой в вашем вопросе.