for (int charcode: message) - PullRequest
       6

for (int charcode: message)

0 голосов
/ 30 мая 2011

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

public static void main(String[] args) {
        final int [] message = 
        {82, 96, 103, 103, 27, 95, 106, 105, 96, 28};
        //the secret message 
        final int key = 5;
        //key to unlock the message
        for (int charcode: message){
            System.out.print((char)(charcode + key));

        }
        //termincate with a newline
        System.out.println();

    }

Ответы [ 3 ]

5 голосов
/ 30 мая 2011

Это называется foreach. Это позволяет вам легко перебирать каждый элемент массива, код ниже будет «эквивалентным»:

for (int i = 0; i < message.length; i++)
    System.out.print((char)(message[i] + key));

Или:

for (int i = 0; i < message.length; i++)
{
    int charcode = message[i];
    System.out.print((char)(charcode + key));
}

Посмотрите документацию для получения дополнительной информации.

2 голосов
/ 30 мая 2011

Это расширенный цикл . Вкратце: он перебирает массив message и присваивает следующее значение charcode в каждой итерации.

Это эквивалентно

for(int $i=0; $i<message.length; $i++) {
  int charcode = message[$i];
  System.out.print((char)(charcode + key));
}

( Примечание - он назвал счетчик $i просто для того, чтобы показать, что он скрыт и не может использоваться в расширенном цикле for)

0 голосов
/ 30 мая 2011
for (int charcode: message){
    System.out.print((char)(charcode + key));
}

Это создает цикл над элементами в message. Каждый раз, charcode устанавливается на текущий элемент в массиве, пока все элементы не будут напечатаны. Это называется циклом foreach.

...