Ввод и оператор в цикл - PullRequest
       12

Ввод и оператор в цикл

0 голосов
/ 13 июля 2011
public void displayData(String [] names, int []scores, char [] grades){
        for (String name : names && char grade : grades)
            System.out.println(name + "\t");
            System.out.print(grade);

Выше мой код. Мне нужно поместить оператор and в цикл for, но приведенный выше код неверен. Пожалуйста помоги. Я дам дополнительные детали, если это необходимо.

Ответы [ 5 ]

2 голосов
/ 13 июля 2011

Глядя на ваш код, похоже, что вам нужно это:

public void displayData(String [] names, int []scores, char [] grades) {
    for (int i = 0; i < names.length; i++) {
        System.out.println(names[i] + "\t");
        System.out.print(grades[i]);
    }
}
1 голос
/ 13 июля 2011

Предполагается, что все массивы параллельны (все одинаковой длины со значением в массиве оценок по индексу i , являющимся оценкой учащегося в массиве имен по индексу i ), вы, вероятно, могли бы просто переписать цикл следующим образом:

for (int i = 0; i < grades.length; ++i) {
  System.out.println(names[i] + "\t" + grades[i]);
}

Кроме того, старайтесь избегать нескольких операторов System.out.print один за другим, поскольку каждый из них требует вызова операционной системы, который замедляетВаше приложение немного закрыто, потому что вся программа сильно останавливается, пока операционная система обрабатывает ваш запрос на печать строки.Вместо этого объединяйте (соединяйте вместе '+') строки, где это возможно.

1 голос
/ 13 июля 2011

Попробуйте:

for (int i = 0; i < names.length && i < grades.length; i++){
    System.out.println(names[i]);
    System.out.println(grades[i]);
}

Редактировать: Это может помочь уточнить, что спрашивает пользователь: как заставить свой код работать или как поместить операнд вдля цикла.В последнем случае цель спорна, но я видел, как она использовалась для циклического перебора массивов разной длины.Вопрос, который вы можете практиковать, но для этого можно было бы использовать его.В первом случае он, вероятно, должен просто использовать традиционный цикл for следующим образом:

for (int i = 0; i < names.length; i++){
    System.out.println(names[i]);
    System.out.println(grades[i]);
}
1 голос
/ 13 июля 2011

Вы не можете использовать цикл for нового стиля, чтобы выполнять итерацию по двум массивам / коллекциям параллельно. Вам необходимо использовать цикл for старого стиля с явной индексной переменной. Например:

public void displayData(String [] names, int []scores, char [] grades) {
    for (int i = 0; i < names.length; i++) {
        System.out.println(names[i] + "\t");
        System.out.print(grades[i]);
    }
}
0 голосов
/ 13 июля 2011

должно быть

for (String name : names) {
    System.out.println(name);
    for (char grade : grades)
        System.out.println("\t"+grade);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...