---
title: "loop stop eller fortsätt...."
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/49611-loop-stop-eller-fortsätt/page2"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "Coper"
published: "2002-08-06T00:31:31.000Z"
updated: "2002-08-27T20:57:47.000Z"
replies: 39
views: 1226
page: 2
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/49611-loop-stop-eller-fortsätt"
---

# loop stop eller fortsätt....

_Sida 2 av 2._

## #21 — Marcus E, 2002-08-07T15:49Z

> **PeW skrev:**
>
> Däremot kan ju break användas till andra saker...

Till vadå? switch-satser?

> **Toonster skrev:**
>
> I exemplen du visar, så är det while-satsen som är given, och där kan break användas.

Det där låter inte klokt i mina öron.

PeW skrev varför break var bannlyst i alla loopar. while och do är lika mycket loopar som for.

for är dessutom bara en utökad while-loop.

for(a; b; c) {d}

är nästan exakt samma sak som

a; while(b) {d c;}

Permalänk: https://www.webforum.nu/p/745435

## #22 — PeW, 2002-08-07T19:23Z

> Till vadå? switch-satser?

Jepp...  ;)

Permalänk: https://www.webforum.nu/p/745589

## #23 — Beatbox, 2002-08-07T19:29Z

Om break inte va tänkt att användas i loopar för att avbryta så är det ju väldigt lustigt att nyckelordet continue existerar.

Permalänk: https://www.webforum.nu/p/745596

## #24 — PeW, 2002-08-07T21:16Z

> **Beatbox skrev:**
>
> Om break inte va tänkt att användas i loopar för att avbryta så är det ju väldigt lustigt att nyckelordet continue existerar.

:OO  
Bara för att en detalj existerar är det inte säkert att det är lyckat att använda den. Goto existerar ju det med... eller hur?  Problemet med C och C++ är just den arsenal med verktyg de skickar på användaren.. och det är inte bara de så omtalade pekarna som är farliga - utan dålig "logisk" kodning kan vara så mycket värre  ;)

Men men ... åter till **TOPIC!**
Kan nån tyda copers felmeddelande?

Permalänk: https://www.webforum.nu/p/745675

## #25 — Marcus E, 2002-08-07T21:24Z

> **PeW skrev:**
>
> Bara för att en detalj existerar är det inte säkert att det är lyckat att använda den. Goto existerar ju det med... eller hur?

Så sant, men jag anser inte att goto är dåligt i alla lägen. Det kan t.ex. användas istället för try-satser i C.

Inget nyckelord är dåligt om det används på rätt sätt.

> **PeW skrev:**
>
> inte bara de så omtalade pekarna som är farliga

Pekare är inte ett dugg farliga om de används på rätt sätt.

> **PeW skrev:**
>
> Kan nån tyda copers felmeddelande?

[Det har jag redan gjort.](http://www.webforum.nu/showthread.php?s=&postid=409767#post409767)

Permalänk: https://www.webforum.nu/p/745685

## #26 — Toonster, 2002-08-07T21:25Z

> Det där låter inte klokt i mina öron.

Det är ju för tusan en grundläggande, ganska stor skillnad mellan for och while. for är en iteration ett bestämt antal gånger, while är en iteration med obestämt antal gånger.

Är nästan exaxt samma sak skriver du, men det är det inte alls. 

Själva poängen är ju antalet iterationer och hur de styrs, inte om det kodmässigt utför snarlikt samma saker.

En gång för alla:

for -\> när du vet antalet iterationer

while -\> när du inte vet antalet iterationer

Som nämndes tidigare, i en tenta hade det blivit avdrag om du blandat ihop for/while och hur de ska användas.

> Det kan t.ex. användas istället för try-satser i C

try och catch är fundamentalt olikt goto satsen. try catch används för att försöka utföra något, och om det inte går, retur med felkod el dyl, så utförs catch statement.

goto är till ondo bara ett statement som inte får existera i strukturerad programmering. JSP mina vänner, JSP...

/T

Permalänk: https://www.webforum.nu/p/745687

## #27 — PeW, 2002-08-07T23:26Z

> Det har jag redan gjort.

Och ändå så... (du vet vad)  ;)

Permalänk: https://www.webforum.nu/p/745747

## #28 — Marcus E, 2002-08-07T23:40Z

> **Toonster skrev:**
>
> Det är ju för tusan en grundläggande, ganska stor skillnad mellan for och while. for är en iteration ett bestämt antal gånger

Givetvis, men det var inte det jag syftade på. Du påstår att man utan problem kan använda break i en while-sats. Dessutom påstår du att while är bättre än for i mitt exempel.

Är det inte bättre att använda en for-sats och avbryta den när sökningen är klar, istället för att göra koden mer komplicerad genom att använda en while-sats eller låta den datorn arbeta längre än nödvändigt genom att undvika att avbryta for-satsen?

Man behöver inte avbryta for-satsen med break, som du såg i mitt exempel tidigare.

> **Toonster skrev:**
>
> try och catch är fundamentalt olikt goto satsen

Jaså. Med throw hoppar man till en felsökare (catch) och det kan man göra med goto också. Visste du att try är C++ och inte finns i C?

> **PeW skrev:**
>
> Och ändå så... (du vet vad)

Nej, jag vet inte.

Permalänk: https://www.webforum.nu/p/745751

## #29 — Beatbox, 2002-08-08T05:20Z

> Bara för att en detalj existerar är det inte säkert att det är lyckat att använda den. Goto existerar ju det med... eller hur? Problemet med C och C++ är just den arsenal med verktyg de skickar på användaren.. och det är inte bara de så omtalade pekarna som är farliga - utan dålig "logisk" kodning kan vara så mycket värre

Bjarne skriver så här om break och continue :

> A break-statement exists its nearest enclosing switch-statement or loop (that is, a for-statement, while-statement, or do-statement). A continue-statement is equvivalent to going to the very end of a loop

Permalänk: https://www.webforum.nu/p/745770

## #30 — jme, 2002-08-08T15:45Z

toonster:

> Det är ju för tusan en grundläggande, ganska stor skillnad mellan for och while. for är en iteration ett bestämt antal gånger, while är en iteration med obestämt antal gånger.

 

men om en for-sats är en iteration med ett bestämt antal gånger;

vad är då:

```

for(;;)
{

}
```

Permalänk: https://www.webforum.nu/p/746258

## #31 — Phorpher, 2002-08-08T15:52Z

> **jme skrev:**
>
> toonster:
> 
> men om en for-sats är en iteration med ett bestämt antal gånger;
> 
> vad är då:
> 
>
>
> ```
> 
> for(;;)
> {
> 
> }
> ```

Det är otroligt ful kodning. Det är vad det är. :e

Permalänk: https://www.webforum.nu/p/746265

## #32 — Beatbox, 2002-08-08T16:12Z

En markering att det är en enumeration liknande "for each" som finns i C# och VB.

Permalänk: https://www.webforum.nu/p/746282

## #33 — developer, 2002-08-08T16:18Z

> **PeW skrev:**
>
> Men men ... åter till **TOPIC!**
> Kan nån tyda copers felmeddelande?

Jag tycker PeW var ganska tydlig. Ingen pajkastning, tack.

Permalänk: https://www.webforum.nu/p/746284

## #34 — Beatbox, 2002-08-08T16:47Z

Line 34 säger inte så mycket då man inte har hela källkoden.

Permalänk: https://www.webforum.nu/p/746312

## #35 — Toonster, 2002-08-08T23:59Z

jme -\>ungefär som;

while(1){
}

Det är inte hur man kodar, med fula knep eller inte, utan hur man strukturerar uppgiften.

Marcus E-\> I ditt exempel så ska du naturligtvis använda for satsen om du vet antal iterationer, annars while (känns som jag upprepar mig). Men du får naturligtvis använda vad du vill.

> Jaså. Med throw hoppar man till en felsökare (catch) och det kan man göra med goto också. Visste du att try är C++ och inte finns i C?

Ja, jag har jobbat med C/C++ programmering professionellt på heltid sedan juni 94....

/T

Permalänk: https://www.webforum.nu/p/746636

## #36 — PeW, 2002-08-09T12:21Z

> **Beatbox skrev:**
>
> Bjarne skriver så här om break och continue :
> 
>
>
> > A break-statement exists its nearest enclosing switch-statement or loop (that is, a for-statement, while-statement, or do-statement). A continue-statement is equvivalent to going to the very end of a loop

 :OO  Nu har det inte specifikt med språket C++ att göra enbart, det här med undvikande av break & goto... utan det är programmeringstekniskt betraktat - oavsett språk. 

> **Toonster skrev:**
>
> Men du får naturligtvis använda vad du vill.

Precis! Det som diskuterats är ju endast lite råd om god programmeringsstil på ett givet exempel...  ;)

Permalänk: https://www.webforum.nu/p/746981

## #37 — Coper, 2002-08-27T13:28Z

...

Permalänk: https://www.webforum.nu/p/763840

## #38 — Sang-drax, 2002-08-27T16:36Z

Re: Gaaaaaah!

> **PeW skrev:**
>
> "break"  är bannade i loopar, ett solklart minus om det vore en tenta  ;) 
> 
> Bättre med:
>
> ```
> #include <stdio.h>
> #include <conio.h>
> 
> int main()
> { 
>    int c = 'j';
>    while(c=='j' || c=='J')
>    {
>       // Gör uppgiften
>       printf("Färdig? ");
>       int c = getch();
>       if(c == 'j' || c == 'J');
>    }
> }
> ```

Antar att du slarvade lite när du skrev den där koden, PeW  ;) 

För övrigt är jag tämligen säker på att Bjarne Stroustrup använder sig av 

```
for(;;)

och

break;
```

 
i sin exempelkod.

Permalänk: https://www.webforum.nu/p/763980

## #39 — PeW, 2002-08-27T19:43Z

Men Bjarne liksom farbröderna med meterskäggen bakom Java,  proggar inte m.h.a effektivitet och användbarhet alla gånger, eller hur?  ;)  Bara för att det *går* att göra en sak är det inte säkert att det är bra. Och bara för att ett tungt namn kläcker ur sig lite kod behöver den inte vara användbar *generellt* sett.

Permalänk: https://www.webforum.nu/p/764097

## #40 — Sang-drax, 2002-08-27T20:57Z

Tydligen finns det många uppfattningar om vad som är bra och dålig kod.

> eftersom man vanligtvis nästlar loopar, traverserar strukturer och bygger ganska komplexa saker

 
Du skriver att break kan orsaka en del problem.
Då jag använder mig inte mycket, men en del av break, så skulle jag vilja se ett exempel på hur problem kan uppstå så att jag kan undvika framtida krångel.

PS:
Skulle inte do -- while vara den bästa lösningen?
Inga onödiga tester eller några variabler utanför loopen.

Permalänk: https://www.webforum.nu/p/764144

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/49611-loop-stop-eller-fortsätt/page2  
Föregående sida: https://www.webforum.nu/amne/c-cpp/49611-loop-stop-eller-fortsätt.md
