Switch mit if else verbinden C programmieren ?

Teil 1 - (Computer, Studium, programmieren) Teil 2 - (Computer, Studium, programmieren)

3 Antworten

Da du für die Variable, die du prüfen möchtest, den Datentyp float verwendest, ist die switch-case-Struktur völlig unpassend. Verwende stattdessen if-else if-else oder führe zuvor einen Typecast aus:

switch ((int) variable) { /* ... */ }

Ersteres würde ich normalerweise bevorzugen, denn es hält dein Programm flexibler. Du kannst schneller einen Kontrollzweig anhängen, falls du doch einmal mit einer Gleitkommazahl vergleichen möchtest.

Da dein Programm allerdings Ganzzahlen als Eingabe erwartet, solltest du stattdessen von Anfang an einen Integer verwenden.

Du versuchst in der Switch-Anweisung abzufragen, ob der Wert ein Integer wert ist.

Der Wert ist aber ein float.

Du musst das also anders abfragen.

"

case 1f:

"

sollte funktionieren...


Destranix  28.10.2017, 16:14

Weis aber nicht sicher, obs funktioniert.

Programmkiere kaum in C...

0
mimoomoo 
Fragesteller
 28.10.2017, 16:19
@Destranix

Klappt leider nicht :D sagt jetzt invalid Suffix “f”

0
Destranix  28.10.2017, 16:20
@mimoomoo

Vielleicht, wenn du statdessen den Wert als integer übergibst.

Ihn also gleich als Integer definierts...

1
mimoomoo 
Fragesteller
 28.10.2017, 16:22
@Destranix

Ja jetzt funktioniert’s ;D 🙏Danke :)

0

Aua.

Schau dir noch mal an, wie ein Switch funktioniert. Im Switch selbst ist schon das Integriert, was du eigentlich möchtest. Kleiner Tipp: die Variable für den Switch muss sich als Integer darstellen lassen, deine ist aber float.