AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 13 - Ternary Operator

Ein Thema von bernau · begonnen am 27. Aug 2025 · letzter Beitrag vom 5. Sep 2025
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.715 Beiträge
 
Delphi 12 Athens
 
#1

AW: Delphi 13 - Ternary Operator

  Alt 2. Sep 2025, 15:26
Was ist eigentlich mit CASE?


if x * case idx of 1: 3; 2: 9; else 666 end + 7 = 111 then Beep;
Delphi-Quellcode:
if x
  * case idx of
      1: 3;
      2: 9;
      else 666
  end
  + 7
  = 111
then
  Beep;
Das CASE ist ja auch nur mehrere IFs,
so in etwa wie https://www.postgresql.org/docs/curr...nditional.html
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Rollo62
Online

Registriert seit: 15. Mär 2007
4.247 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi 13 - Ternary Operator

  Alt 2. Sep 2025, 16:25
Was ist eigentlich mit CASE?

if x * case idx of 1: 3; 2: 9; else 666 end + 7 = 111 then Beep;
Oh ja, das wäre wünschenswert, aus rein logischer Abstraktions-Sicht, aber damit wird Pascal ganz schön C++-ish
Hoffentlich muss ich diese Zeile nie debuggen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.715 Beiträge
 
Delphi 12 Athens
 
#3

AW: Delphi 13 - Ternary Operator

  Alt 2. Sep 2025, 17:25
keine Sorge, mit IFs sieht es nicht besser aus.

if x * if idx = 1 then 3 else if idx = 2 then 9 else 666 + 7 = 111 then Beep;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 2. Sep 2025 um 23:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.814 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi 13 - Ternary Operator

  Alt 2. Sep 2025, 22:08
Was ist eigentlich mit CASE?
Es gibt zum ternären Operator kein case-Pendant. Selbst wenn es das gäbe, würde der Term mit X: Integer niemals True ergeben.

if a * if True then 1 else 2 end + 7 = 9 then
Das end geht da nicht. Man muss da schon korrekt klammern:

if a * (if True then 1 else 2) + 7 = 9 then

Mal sehn wie darauf die CodeFormatter reagieren, vor allem jener Einer.
Welchen meinst du denn jetzt? Den von Thomas?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.715 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delphi 13 - Ternary Operator

  Alt 2. Sep 2025, 23:59
ups, das End vergessen
aber stimmt, wenn man es jetzt so sieht ...... gehört das + dann noch zum else, oder ist das IF dann schon vorbei (vermutlich nicht)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
skybibo

Registriert seit: 23. Jun 2008
Ort: NRW
33 Beiträge
 
Delphi 12 Athens
 
#6

AW: Delphi 13 - Ternary Operator

  Alt 3. Sep 2025, 09:23
Zitat:
Das end geht da nicht. Man muss da schon korrekt klammern:

if a * (if True then 1 else 2) + 7 = 9 then
Mit den Klammern macht das schon eher einen Sinn. So kann man leichter erkennen, was gemeint ist. Die Version mit „end“ wäre für mich zu kryptisch.
Bernd
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.715 Beiträge
 
Delphi 12 Athens
 
#7

AW: Delphi 13 - Ternary Operator

  Alt 3. Sep 2025, 10:09
Das mit End war nur ein Fehler ... hatte das CASE in IF umgebaut und das END vergessen zu löschen.


Es gibt aber ein bestimmtes CASE, wo ich mir seit Jahrzehnten endlich ein END wünschen würde. (das CASE im RECORD)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.055 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

AW: Delphi 13 - Ternary Operator

  Alt Gestern, 12:21
+ und = haben höhere Priorität, deshalb wird es einen E2010 geben, denn 2 + 7 = 9 ist vom Typ Boolean und passt somit nicht zum Typ von 1
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.715 Beiträge
 
Delphi 12 Athens
 
#9

AW: Delphi 13 - Ternary Operator

  Alt Heute, 02:00
https://embt.atlassian.net/servicede...tal/1/RSS-3900
Noch nichtmal drin und schon die ersten Bugs?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.422 Beiträge
 
Delphi 12 Athens
 
#10

AW: Delphi 13 - Ternary Operator

  Alt Heute, 05:23
Noch nichtmal drin und schon die ersten Bugs?
Dürfte ein Bug in der Beta sein, welcher nicht im korrekten Bereich gemeldet wurde. Passiert auch mal

......
Lizbeth W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz