Armenian Knowledge Base  

Go Back   Armenian Knowledge Base > Technical sections > Languages, Compilers, Interpreters
Register

Reply
 
LinkBack Thread Tools
Old 12.06.2005, 06:33   #1
панаехавший
 
Obelix's Avatar
 
Join Date: 06 2003
Location: форпост
Age: 30
Posts: 4,007
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default General C-Style syntax question

PHP Code:
while(1) { 
    while(
1) {
        
//<--
    
}

Is there any straightforward way of writing a break statement inside of the second cycle to break from both cycles?
Reply With Quote
Old 12.06.2005, 13:25   #2
Untouchable misanthrope
 
AvDav's Avatar
 
Join Date: 07 2004
Location: Pure thoughts
Age: 36
Posts: 3,408
Downloads: 22
Uploads: 0
Reputation: 222 | 3
Default

except from using a bool variable or goto perhaps no.
Reply With Quote
Old 12.06.2005, 13:59   #3
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 47
Posts: 3,118
Downloads: 0
Uploads: 0
Reputation: 5 | 0
Default

в PHP - нет.

совет чисто по стилю программирования - запихай внутренний цикл в отдельную функцию.

если при этом оказывается, что циклы сильно зависят друг от друга по данным - стоит подумать об переписывании этого куска кода

должно получится что-то типа

while(1) {
...
if ($this->inner_loop() === false)
break;
...
}
Reply With Quote
Old 13.06.2005, 12:12   #4
Дошкольник
 
Join Date: 08 2004
Location: Oxford
Age: 38
Posts: 141
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

well, if you talk about C, it may be even easier. Take the outer cycle in a function and use return instead of break:

while(1) {
while(1) {
return;
}
}
Reply With Quote
Old 13.06.2005, 12:14   #5
...overwined...
 
noone's Avatar
 
Join Date: 03 2003
Location: ...tortuga...
Posts: 3,429
Downloads: 3
Uploads: 0
Reputation: 158 | 3
Default

bool moo=1;
while(
moo) {
while(
1) {
//<--
moo=0,break;
}
}
Reply With Quote
Old 13.06.2005, 14:41   #6
панаехавший
 
Obelix's Avatar
 
Join Date: 06 2003
Location: форпост
Age: 30
Posts: 4,007
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Люди, сорри, я просто хотел узнать есть ли возможность одной командой послать два брейка, на самом деле у меня код немного сложнее - цикл один, а вне него кейс - свитч, из которого и надо брейкать.

Ну в принципе я решил все это дело вводом лишней переменной ну и выглядит примерно так
PHP Code:
foreach($r as $v) {
    
$a unserialize($v['author_data']);

    if(
$a['email'] == $_POST['email']) {
        
$smarty->assign("error","email_taken");
        
$a = -1;
        break;
    }
}
                    
if(
$a == -1) break; 
У меня вообще после перехода на ООП рука не поднимается свободную функцию написать.
Reply With Quote
Old 13.06.2005, 19:25   #7
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 47
Posts: 3,118
Downloads: 0
Uploads: 0
Reputation: 5 | 0
Default

Quote:
У меня вообще после перехода на ООП рука не поднимается свободную функцию написать.
что значит свободную функцию?
Reply With Quote
Old 13.06.2005, 22:10   #8
Академик
 
W_z_rd's Avatar
 
Join Date: 08 2002
Location: Yerevan, Armenia
Age: 45
Posts: 4,854
Downloads: 1
Uploads: 0
Reputation: 225 | 3
Default

свободную = global`nuyu, I assume...
Reply With Quote
Old 14.06.2005, 14:04   #9
панаехавший
 
Obelix's Avatar
 
Join Date: 06 2003
Location: форпост
Age: 30
Posts: 4,007
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Quote:
Originally Posted by W_z_rd
свободную = global`nuyu, I assume...
Reply With Quote
Sponsored Links
Reply

Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 21:34.


Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.