[TurboPascal] Until Goto

0

Witam mam takie pytanie nie piszę w TP i nie pamiętam jak tam było.

chcę użyć pętli REPEAT until ,petla ma konczyc '*' gwiazdka ... robię

REPEAT
isntrukcja
until str[a]='***' i tutaj chce zrobić jeszcze goto koniec;

jak koniec zdefiniowac to wiem, ale jak w until umiescic goto

0

Najlepiej to zapomnij, że w Pascalu w ogóle istnieje coś takiego jak instrukcja goto. Można się bez niej obejść i problem rozwiązać w inny sposób

0

Wiem, że można bez problemu ifem zrobić, ale ma być goto bo niektórzy są inni

0

No dobra, niech więc będzie goto ... label

Musisz tylko napisać, co dokładnie chcesz zrobić, bo nie można napisać

repeat
...
until goto koniec;

bo to nie ma sensu i nie wiem, czy w ogóle dałoby się skompilować

Poniżej daję prosty program, który używa instrukcji goto ... label, ale zamiast pętli repeat ... until. Może to będzie jakaś wskazówka

program gotolabel;

uses Crt;

var ch: Char;
    s: string;

label start;

begin
  s:= '';
  Write('Podaj imie: ');
  start:
    ch:= Readkey;
    Write(ch);
    if ch <> #13 then s:= s + ch;
  if ch <> #13 then goto start;
  Writeln;
  Writeln('Masz na imie ', s);
  Readln;
end.
0

TO to ja wiem jak się użwa ,w until chcę zrobić, że jak ktoś poda *** to się zakończy pętla

0

Po pierwsze nie powinno się używać goto, to konstrukcja przestarzała i
nieefektywna, tak jak pisał poprzednik można zawsze ją zastąpic. A Ty
nie napisałeś czym jest u Ciebie Str i A. Jeżeli Str to string, zaś A to na
przykład integer - to porównując to, tak jak Ty to zrobileś, sprawdzasz
tylko czy Str[NumerZnaku] = ''. Chcesz sprawdzić czy w zmiennej Str
jest ciąg '
' to robisz po prostu until Str = '*'. No chyba że Str, to
jest jakaś tablica stringów, wtedy ok, powinno się kompilowac, ale pod
warunkiem, że masz zmienne: "Str" i "A" - prawidowo zadeklarowane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1