Jump to content

    
sunjob

"break to out" from for/switch

Recommended Posts

И по поводу читаемости: goto - очевидное действие, модификация переменной цикла, набивание кода 100500 continue - костыли, механизм работы которых специально изучать надо. И таки да, легко выстрелить в ногу.

 

1 minute ago, jcxz said:

один гвоздь торчит в сторону и колет спину

Ключевое слово один - он действительно один, и назначение его очевидно.

Share this post


Link to post
Share on other sites
9 minutes ago, aaarrr said:

goto - очевидное действие

А остальные - крайне неочевидные. В которых легко допустить ошибку, иногда - трудно находимую. Потому что вагон писанины.

Share this post


Link to post
Share on other sites

Не совсем ясен смысл такого паровоза. Судя по коду цель - выполнить цепочку этапов и если условие текущего выполняется, перейти к следующему. Как по мне тут явно for не к месту - тут скорее нужен do{}while(i)

U8 z=1,i=10
do
{
...
switch(i)
  {
  case 10:
  if()
    {
    ...
    }
  else
    {
    z=0
    }
  break;
  ...
  case 20:
  if()
    {
    ...
    }
  else
    {
    z=0
    }
  break;
  default:
    z=0
  break;
  
  }   // switch()
  i++;
} while(z);   

Если на месте первого троеточия нет кода(т.е. нет кода постоянно исполняемого в цикле), то там вообще можно обойтись без цикла.

Share this post


Link to post
Share on other sites

а какая разница, for() или do-while()?

выброс из цикла происходит одинаково, по установке/сбросу переменной цикла.

поясните, в 2-3х предложениях?! если только визуально do-while() приятнее, то ... ну ладно, пусть, я не против, но не вижу разницы вообще :о)

Share this post


Link to post
Share on other sites
for(i=1; i<BREAK; i++)
{
...
switch(i)
  {
  case 10:
  if()
    {
    ...
    BREAK = 0; // видим слово BREAK - значить это "то, что надо"
    }
  break;
...
}

либо

#define BREAK 0

for(i=1; i<CNT; i++)
{
...
switch(i)
  {
  case 10:
  if()
    {
    ...
    CNT = BREAK; // тут вообще все очевидно :о)
    }
  break;
...
}

все то-же самое :о) за исключением что счетчик используется для выброса (мавр сделал, мавр может...)

из плюсов - ни чего не надо перехреноверчивать :о)

 

Edited by sunjob

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.