Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
PROG-material-public
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Walter, Wolfgang
PROG-material-public
Commits
2f6532d8
Commit
2f6532d8
authored
4 months ago
by
dali662d
Browse files
Options
Downloads
Patches
Plain Diff
Upload New File
parent
fec4e2c9
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Sonderuebung/WiSe24-25/02_IF-ELSE_overview.f95
+91
-0
91 additions, 0 deletions
Sonderuebung/WiSe24-25/02_IF-ELSE_overview.f95
with
91 additions
and
0 deletions
Sonderuebung/WiSe24-25/02_IF-ELSE_overview.f95
0 → 100644
+
91
−
0
View file @
2f6532d8
! kurze Übersicht über Alternativen in Fortran
program
alternativen
implicit
none
INTEGER
::
a
=
2
,
b
=
2
! Alternativen haben im Allgemeinen folgende Form :
! IF (bedingung 1) THEN
! content
! ELSEIF (bedingung 2) THEN
! content 2
! ELSEIF (bedingung 3) THEN
! ...
! ELSE
! content n
! END IF
!
! Dabei können auch die ELSEIF und ELSE Zweige Weggelassen werden
!
! Bei jedem IF/ELSEIF wird geprüft ob die Bedingung wahr ist
! wenn ja wird der Content unter dem entsprechenden Zweig ausgeführt,
! danach wird NACH dem END IF fortgeführt
! wenn nein und danach ein weiterer ELSEIF Zweig existiert
! wird dieser analog überprüft und evtll ausgeführt
!
! wenn alle vorherigen Bedingungen falsch sind, wird der Content
! des ELSE-Zweiges ausgeführt, soweit dieser existiert
! Bedingungen können u.a. LOGICALS und Vergleiche (siehe unten) sein
! Um mehere Bedingungen zu verknüpfen nutze .AND., .OR, .EQV., .NEQV. und .NOT.
! Alle logischen Operatoren funktionieren wie bekannt
!!! es folgen beispiele
! a = b = 4
IF
(
a
==
b
)
THEN
! == wird zum Vergleich genutzt
WRITE
(
*
,
*
)
"a und b sind gleich"
END
IF
WRITE
(
*
,
*
)
! Leerzeile in Ausgabe
IF
(
a
+
b
==
4
)
THEN
WRITE
(
*
,
*
)
"a + b ist gleich 4"
ELSE
WRITE
(
*
,
*
)
"a + b ist ungleich 4"
END
IF
WRITE
(
*
,
*
)
! Leerzeile in Ausgabe
IF
(
a
+
b
>
0
)
THEN
! > und >= für strikt größer und größer-gleich
WRITE
(
*
,
*
)
"a + b ist positiv"
ELSEIF
(
a
+
b
<
0
)
THEN
! < und <= für strikt kleiner und kleiner-gleich
WRITE
(
*
,
*
)
"a + b ist negativ"
ELSE
WRITE
(
*
,
*
)
"a + b = 0"
END
IF
WRITE
(
*
,
*
)
! Leerzeile in Ausgabe
! Falls es keinen ELSE/ELSEIF Zweig gibt und der Content nach IF nur eine Zeile lang ist
! kann man die IF Bedingung auch einzeilig schreiben
! Dies nutzt man z.B. oft für EXIT-Bedinungen in Schleifen
!
! Die folgenden Altertiven machen also das gleiche
IF
(
a
/
=
0
)
THEN
! nutze /= für Ungleich
WRITE
(
*
,
*
)
"a ist nicht 0"
END
IF
IF
(
a
/
=
0
)
WRITE
(
*
,
*
)
"a ist nicht 0"
WRITE
(
*
,
*
)
! Leerzeile in Ausgabe
!!! Nisten !!!
! Die innere Alternative muss sich komplett in der Äußeren befinden
! Beachtet dass sich genistete Bedingungen nicht gegenseitig ausschließen sollten
IF
(
a
>=
b
)
THEN
IF
(
a
<=
b
)
THEN
WRITE
(
*
,
*
)
"a und b sind gleich"
ELSE
WRITE
(
*
,
*
)
"a ist strikt kleiner als b"
END
IF
ELSE
WRITE
(
*
,
*
)
"a ist strikt größer als b"
END
IF
end
program
alternativen
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment