Re: Разьве можно так кодировать?
От: Eyfel Россия  
Дата: 07.02.05 13:13
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Вчера читал книжку JAVA IN A NUTSHELL, Полное руководство, Девид Фленэген; O'REILLY, O-bhv, Киев 1998.


СГ>На странице 55 в разделе "Операторы break и continue с метками" приведены следующие два примера использования.

СГ>Оператор break с меткой:
СГ>
СГ>test: 
СГ>if (check(i)){
СГ>  try{
СГ>    for(int j = 0; j < 10; j++){
СГ>      if ( j > i ) break;
СГ>      if ( a[i][j] == null)
СГ>        break test;
СГ>    }
СГ>  }
СГ>  finally {cleanup(a, i, j); }
СГ>}
СГ>

СГ>Оператор continue с меткой:
СГ>
СГ>big_loop:
СГ>while(!done){
СГ>  if ( test(a, b) == 0 ) continue;
СГ>  try{
СГ>    for (int i = 0; i < 10; i++){
СГ>      if ( a[i] == null)
СГ>        continue;
СГ>      else if (b[i] == null)
СГ>        continue big_loop;

СГ>      doit(a[i], b[i]);
СГ>    }
СГ>  }
СГ>  finally { cleanup(a, b); }
СГ>}
СГ>

СГ>Ну, что я могу сказать. Волосы у меня дыбом встали. Разьве можно так кодировать? Тем более, разьве можно в книгах типа "JAVA IN A NUTSHELL полное руководство" приводить такие не культурные примеры кода?


СГ>Я бы, например, написал что-то вроде такого:

СГ>
СГ>IF check(i) THEN
СГ>  FOR j := 0 TO MIN(9, i) DO
СГ>    IF a[i, j] = NIL THEN cleanup(a, i, j) END
СГ>  END
СГ>END
СГ>

СГ>
СГ>WHILE ~done DO
СГ>  IF test(a, b) # 0 THEN
СГ>    FOR i := 0 TO 9 DO
СГ>      IF a[i] # NIL THEN
СГ>        IF b[i] # NIL THEN doit(a[i], b[i]) ELSE cleanup(a, b) END
СГ>      END 
СГ>    END
СГ>  END
СГ>END
СГ>


ну ваш пример вообще на паскале =)
а чтоже касается книжки..то там пишеться для ламеров и со временем члеовек эти баги сам назодит.... главное в книге что код работает
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.