goto vs break & continue
    , Кроха-сын пришел к отцу и спросила кроха: "goto - это хорошо?"
  ![]()  | 
Наши проекты:
 Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту  | 
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS | 
| [216.73.216.0] | 
 
 | 
		
  | 
    Правила раздела:
  | Страницы: (32) « Первая ... 15 16 [17] 18 19 ... 31 32 ( Перейти к последнему сообщению ) | 
    goto vs break & continue
    , Кроха-сын пришел к отцу и спросила кроха: "goto - это хорошо?"
  | 
         
         
         
          
           Сообщ.
           #241
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Qraizer @  Да ничего прекрасного. Си'шному коду тоже следовало бы на такое ругаться:Это был прекрасный код конём для взбунтовавшегося ИИ. Типа "коли ты такой умный, ну-ка, исполни break -i, родимый", и делов. ![]() ![]() int i=3.14; Добавлено Цитата Славян @  О, оказывается по-лёгкому ругается:Си'шному коду тоже следовало бы на такое ругаться ![]() ![]() warning C4244: инициализация: преобразование "float" в "int", возможна потеря данных  | 
    
| 
         
         
         
          
           Сообщ.
           #242
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          даёшь хардкор: 
        
      ![]() ![]() int i = Integer.valueOf(Math.PI); и никаких варнингов   правда это не сишки... =( Добавлено Короче вангую, что первый ИИ, который поработит мир будет на пыхе или джаве   т.к. они умеют всё   | 
    
| 
         
         
         
          
           Сообщ.
           #243
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Serafim @  Отвратное вангование. Даю руку на отсечение, что вы заблуждаетесь. Короче вангую, что первый ИИ, который поработит мир будет на пыхе или джаве     | 
    
| 
         
         
         
          
           Сообщ.
           #244
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Почему же? Другие ИИ будут падать на просьбах ответить на вопрос о жизни и всём таком, жава и пых же скастуют его к инту и вернут нормальный числовой ответ без единого варнинга. Так даже в книге Дугласа было.   
        
       | 
    
| 
         
         
         
          
           Сообщ.
           #245
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Так и си кастует. А ИИ тут каким боком?   
        
       | 
    
| 
         
         
         
          
           Сообщ.
           #246
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Serafim @  Ответов на вопрос о жизни у людей полно всяких, а потому для ИИ это не будет проблемой вообще. Чтобы ИИ мог захватить мир, ему надо как минимум научиться отвечать, что делает конструкция "break -5" в правильно расширенном PHP, а тут даже вы пока ответ не предложили! Другие ИИ будут падать на просьбах ответить на вопрос о жизни и всём таком, жава и пых же скастуют его к инту и вернут нормальный числовой ответ без единого варнинга.     | 
    
| 
         
         
         
          
           Сообщ.
           #247
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Славян @  Фигня вопрос. Даже я могу ответить: идёт в пять циклов вглубь. А вот break -3i куда ведёт, а? Вбок? что делает конструкция "break -5" в правильно расширенном PHP Добавлено А вот ещё вопрос на засыпку: что делает конструкция continue 3?  | 
    
| 
         
         
         
          
           Сообщ.
           #248
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Qraizer @  Да я так же предложил, только что-то не смог сразу решить вглубь следующего за строкой цикла или предыдущего?Фигня вопрос. Даже я могу ответить: идёт в пять циклов вглубь. Цитата Qraizer @  Да, будет вбок, когда код будет не тупо линейно устроен. Но пока такого нигде нет, а многопоточность только-только начинает в примерно этом направлении работать.А вот break -3i куда ведёт, а? Вбок? Цитата Qraizer @  А что, в PHP есть какие-то попытки реализации "continue N"? Но, в целом, это похоже на конструкцию "break (N-1), continue;"  А вот ещё вопрос на засыпку: что делает конструкция continue 3?  | 
    
| 
         
         
         
          
           Сообщ.
           #249
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Славян @  "continue N"? Но, в целом, это похоже на конструкцию "break (N-1), continue;"  Почему не "пропустить N итераций цикла"?     | 
    
| 
         
         
         
          
           Сообщ.
           #250
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата DarkEld3r @  Хм... да, возможно. Но подумалось, что "continue 0"=="continue;".  Почему не "пропустить N итераций цикла"?  | 
    
| 
         
         
         
          
           Сообщ.
           #251
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          DarkEld3r получает плюс. Вариант "продолжить итерации N-го наружу цикла" по аналогии с break N не канает, потому что так неинтересно. 
        
      Славян, ну всё правильно, 0 – значит никаких итераций не пропускать, просто перейти к следующей.  | 
    
| 
         
         
         
          
           Сообщ.
           #252
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Qraizer @  Да, согласен с вами обоими. Для продолжения N-го наружу и послужат команды "break N-1,continue". DarkEld3r получает плюс. Вариант "продолжить итерации N-го наружу цикла" по аналогии с break N не канает, потому что так неинтересно. Славян, ну всё правильно, 0 – значит никаких итераций не пропускать, просто перейти к следующей. Добавлено Т.е. эта схема: ![]() ![]() for(A;B;C) {   P;   continue N;   Q; } ![]() ![]() for(A;B;C) {   P;   C;...;C; continue; // C; - N раз   Q; } ![]() ![]() do {   P;   continue N;   Q; }while( A );     | 
    
| 
         
         
         
          
           Сообщ.
           #253
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Если честно, goto с меткой перехода куда нагляднее, чем все эти break 3, или continue 2.   
        
       | 
    
| 
         
         
         
          
           Сообщ.
           #254
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата amk @  Если честно, goto с меткой перехода куда нагляднее, чем все эти break 3, или continue 2. +1  | 
    
| 
         
         
         
          
           Сообщ.
           #255
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Настоящие коммерческие программисты, использующие скрам - не используют goto  
        
      Добавлено тем более любой алгоритм можно без goto реализовать, более чище и понятнее, чем с ним. Добавлено Например вот это приводилось в пример: goto vs break & continue (сообщение #3188868) Это ради того, чтобы не выносить метку в отдельную функцию или на худой конец замыкание, т.е. ни разу не оправдание сего пагубного поступка, а ведь ещё г-н Макконнел говорил.... Добавлено И наконец реализация мульти-континью на пыхе. ![]() ![]() foreach ($array as $item) {   // пропускаем три шага   foreach (range(1, 3) as $i) { next($array); } } Смысл в том, что итераторы внутри имеют курсор (ля реализации таких циклов, как for..in, foreach...as, for..of и проч.), а функция next просто его сдвигает на следующий. Добавлено *я подозреваю, что курсоры можно двигать и не только в пыхе, как минимум во всех языках где есть итераторы  |