Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi If Anweisung... Block? (https://www.delphipraxis.net/82397-if-anweisung-block.html)

GanjaGott 12. Dez 2006 14:19


If Anweisung... Block?
 
Hallo Leute,
Ich habe gerade in kleines Programm geschrieben, nun ist meine Frage wie man eine If Anweisung blocken kann?
Also ich hab mehrere If Anweisungen und möchte die so zusammen schachteln das wenn ich eine else anweisung einbaue er alle if anweisung durch geht und nicht nur die letzte! Hättet ihr da Tipps für mich? mit einer schleife vielleicht?

meine 2. frage wäre dann gewesen, wie ich machen kann, dass sich der user am ende vom prog. raussuchen kann ob er erneut etwas rechnen will...! Wie kann ich machen, dass er dann die ganzen vorherigen if anweisungen wieder nachfrägt?

Es ist eine Konsolen Anwendung...

MfG und danke im voraus

GG

uwewo 12. Dez 2006 14:23

Re: If Anweisung... Block?
 
Ich glaube Du solltest erstmal ein bisschen Code posten, damit wir sehen was genau Du machen willst.

Uwe

Maja Jessica 12. Dez 2006 14:36

Re: If Anweisung... Block?
 
Hi,

zur Frage2 glaube ich zu wissen was gemeint ist, (hatte so in der Art meine ersten Turbo-Pascal-Programme geschrieben), also eine "Hauptschleife" im Programm.

Beispielsweise als PseudoCode:

Delphi-Quellcode:
ProgrammStart
  Repeat
    if dieses then jenes;
    Sonstiges(wasWeissIch);
    Rechne;
    ZeigeErgebnis;
    write('Nochmal? (J/N));
    Taste := ReadKey;
  Until (Taste = N);
End;
Oder bin ich auf dem Holzweg (GlaskugelModus Off)?

Gruß, MJ

GanjaGott 12. Dez 2006 14:39

Re: If Anweisung... Block?
 
Delphi-Quellcode:
  if ein = 'Profikiller' then pun:=anz*176;
  if ein = 'Objektwache' then pun:=anz*21;
  if ein = 'Guarde' then pun:=anz*388;
  if ein = 'Problemloeser' then pun:=anz*93;
  if ein = 'Bombenleger' then pun:=anz*281;
  writeln;
  writeln;
  writeln ('Hier die Gesamtpunktzahl:');
  writeln (pun);
da will ich jetzt ne else anweisung einbauen und dann unten nochmals eine abfrage...

mfg

inherited 12. Dez 2006 14:42

Re: If Anweisung... Block?
 
Delphi-Quellcode:
  if ein = 'Profikiller' then pun:=anz*176
  else if ein = 'Objektwache' then pun:=anz*21
  else if ein = 'Guarde' then pun:=anz*388
  else if ein = 'Problemloeser' then pun:=anz*93
  else if ein = 'Bombenleger' then pun:=anz*281
  else pun:=0;
  writeln;
  writeln;
  writeln ('Hier die Gesamtpunktzahl:');
  writeln (pun);
Suchst du das? :gruebel:

uwewo 12. Dez 2006 14:43

Re: If Anweisung... Block?
 
Also alle if Schleifen abarbeiten tut es ja schon, die else Anweisung sehe ich allerdings nicht.

Denke aber Du benötigst dden Code aus Jessicas Glaskugel.

Uwe

GanjaGott 12. Dez 2006 14:56

Re: If Anweisung... Block?
 
Habe das jetzt mal probiert wie es inherited gesagt hat, hier ist mein kompletter quellcode... allerdings funkz das prog jetzt nicht mehr da er jetzt am ende immer 0 hinschreibt... Was kann ich dagegen machen und wie würde das mit dem repeat innerhalb dieses quellcodes aussehen?

Delphi-Quellcode:
program Einheiten;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
ein :string;
anz, pun : integer;

begin
writeln ('Vendetta - Einheitenpunktezaehler');
  writeln ('Bitte gebe den Namen der Einheit an (Bitte in Vokalen, z. B. Soeldner):');
   readln (ein);
  writeln ('Bitte gebe Die Anzahl der Einheiten an:');
  readln (anz);
  if ein = 'Schlaeger' then pun:=anz*6;
  if ein = 'Messerstecher' then pun:=anz*4;
  if ein = 'Tuersteher' then pun:=anz*6;
  if ein = 'Revolverheld' then pun:=anz*21;
  if ein = 'Besetzungstruppe' then pun:=anz*251;
  if ein = 'Spion' then pun:=anz*3;
  if ein = 'Moebelpacker' then pun:=anz*9;
  if ein = 'CIA Agent' then pun:=anz*87;
  if ein = 'FBI Agent' then pun:=anz*48;
  if ein = '´Transporteur' then pun:=anz*51;
  if ein = 'Ninja' then pun:=anz*236;
  if ein = 'Scharfschuetze' then pun:=anz*28;
  if ein = 'Soeldner' then pun:=anz*1176;
  if ein = '`Schwarzgeldarbeiter' then pun:=anz*4;
  if ein = 'Bodyguard' then pun:=anz*43;
  if ein = 'Polizist' then pun:=anz*54;
  if ein = 'Profikiller' then pun:=anz*176;
  if ein = 'Objektwache' then pun:=anz*21;
  if ein = 'Guarde' then pun:=anz*388;
  if ein = 'Problemlöser' then pun:=anz*93;
  if ein = 'Bombenleger' then pun:=anz*281
  else pun:=0;
  writeln;
  writeln;
  if pun = 0 then writeln ('Die Einheit wurde leider nicht gefunden')
  else  writeln ('Hier die Gesamtpunktzahl:'); writeln (pun);
  writeln;
  writeln;
  writeln;
  readln;
  end.

Maja Jessica 12. Dez 2006 15:06

Re: If Anweisung... Block?
 
Hi,

immer 0 ist klar, wenn du nicht den letzten nimmst:

Delphi-Quellcode:
if ein = 'Bombenleger' then pun:=anz*281
  else pun:=0;
Du kannst vorher Eingeben was du möchtest, am Schluss wird immer obiges ausgewertet.

Schau dir "else if" an.

Gruß, MJ

inherited 12. Dez 2006 15:07

Re: If Anweisung... Block?
 
Neinein, du hast da was übersehen, da muss überall ein else vor.
€dit: das Problem mit dem direkt-einloggen und dem Roten Kasten gibt es offenbar immer noch, oder er ist grad in einer Schneeballschlacht^^

Maja Jessica 12. Dez 2006 15:10

Re: If Anweisung... Block?
 
Zitat:

Zitat von inherited
Neinein, du hast da was übersehen, da muss überall ein else vor.
€dit: das Problem mit dem direkt-einloggen und dem Roten Kasten gibt es offenbar immer noch, oder er ist grad in einer Schneeballschlacht^^

Genau, siehe Posting Numero 5 von inherited.

MJ


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:23 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz