Fehler in Schleife????

Getting started ... Alles für einen gelungenen Start.
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Fehler in Schleife????

Beitrag von Aggu (ForumUser / 11 / 0 / 0 ) »
Hallo zusammen,

ich habe ein Programm geschrieben, wo ich als Parameter das aktuelle Jahr habe und das Jahr wann ich geboren worden bin. Die Ausgabe kommt dann immer so:

2000 befanden sie sich im 1 ten Lebensjahr
2001 befanden sie sich im 2 ten Lebensjahr
usw.

Nun, wenn ich jetzt mein Geburtsjahr da eingebe, das ist 1977, dann rechnet er viel zu lange oder es liegt an was anderem, auf jeden Fall dauert das tierisch lange. Das Programm funktioniert aber weil wenn ich als Geburtsjahr 2000 eingebe und als aktuelles Jahr 2004, das geht ruck zuck.

Kann mir jemand von Euch sagen wo in meinem Code ein Fehler ist, oder in der Schleife? :?:

Code: Alles auswählen.

PARAMETERS: GEBJAHR(4) TYPE N,
AKTJAHR(4) TYPE N.

DATA:    I TYPE N,
             ALTER(4) TYPE N.

ALTER = AKTJAHR - GEBJAHR.
I = 1.
WRITE: ALTER.

WHILE I <= ALTER.
       WRITE: / GEBJAHR, 'befanden sie sich im ', I, 'ten Lebensjahr'.
       I = I + 1.
       GEBJAHR = GEBJAHR + 1.
ENDWHILE.
Das wäre echt nett.

Vielen Dank schon mal.

Gruß Agnes!

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Wenn Alter >= '0009' ist, hast Du eine Endlosschleife, weil I nur Werte zwischen '0' uns '9' annehmen kann.

Ausserdem könnte man AKTJAHR mit SY-DATUM(4) vorbelegen.

Beitrag von Gast ( / / 0 / 3 ) »
Hallo Frank,

und durch was kann ich das ersetzen????

Gruß Agnes

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Anonymous hat geschrieben:und durch was kann ich das ersetzen????
Ich dachte, das wäre offensichtlich.
Durch eine Variable, die Zahlen > 9 aufnehmen kann.
z.B.

Code: Alles auswählen.

DATA:    I TYPE I

Code: Alles auswählen.

DATA:    I(3) TYPE N

Code: Alles auswählen.

DATA:    I(3) TYPE C
Wie sich die Varianten bei der Ausgabe (Platzbedarf, Ausgabe führender Nullen, ...)
und bei der Konvertierung Integer in NUMC oder CHAR verhalten, steht in der F1-Hilfe zu WRITE bzw. MOVE.
Wenn man TYPE I wählt, kann man auch gleich SY-INDEX als Zähler nehmen (s. F1-Hilfe zu WHILE).

Außerdem könntest Du noch eine Eingabeprüfung für GEBJAHR und AKTJAHR vornehmen.
Weil Alter vom Typ N ist, gibt das Programm sonst Unsinn aus, wenn GEBJAHR > AKTJAHR ist.
(F1-Hilfe zu AT SELECTION-SCREEN, START-OF-SELECTION, CHECK oder IF (und ENDIF), MESSAGE)

Beitrag von meinrad (ForumUser / 67 / 0 / 0 ) »
hallo,

Type N ist eigentlich für NICHT für Rechen-Operationen gedacht.
Es ist ein Zeichen-Typ (Character Typ), der aber nur Ziffern enthält.
Beispiel sind Nummern in Stammdaten.
Bei umfangreichen Rechenoperationen ergeben sich längere Laufzeiten.
(interne Kovertierung)
Am besten für Ganz-Zahlen immer Type I verwenden,
und dann nur bei Bedarf, wenn z.B. ein Format mit fixer Länge mit führenden Nullen gebraucht wird (z.B für Ausgaben / Schnittstellen in CSV-Dateien ) in Typ N konvertieren.

Beitrag von Gast ( / / 0 / 3 ) »
Vielen Dank für Eure Hilfe.

Gruß Agnes

Seite 1 von 1

Vergleichbare Themen

1
Antw.
530
Views
Fortführen der Schleife
von ichse18577 » 18.04.2019 07:33 • Verfasst in ABAP® für Anfänger
4
Antw.
3941
Views
feldzuweisung in schleife
von simethandreas » 01.10.2009 14:25 • Verfasst in ABAP® für Anfänger
6
Antw.
2365
Views
COND in Schleife
von SaskuAc » 18.06.2018 08:08 • Verfasst in ABAP® für Anfänger
2
Antw.
204
Views
Schleife, Gruppenverarbeitung
von Ingo » 08.07.2022 10:54 • Verfasst in ABAP® für Anfänger
1
Antw.
1394
Views
Dynamisierung von Schleife
von dvdh1979 » 05.06.2015 12:07 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141