Got an idea for enhancing PureBasic? New command(s) you'd like to see?
			
		
		
			
				
								bds107 							 
						User 			
		Posts:  10 Joined:  Fri Jul 28, 2023 10:35 amLocation:  Bruges (Belgium) 
		
						
						
													
							
						
									
						Post 
					 
								by bds107  Thu Jul 24, 2025 9:50 pm 
			
			
			
			
			Hi everyone!
Back when animals still spoke, there was something called IIF. Unfortunately, it wasn't built into PureBASIC, or I'd have to cross my eyes.
Code: Select all 
GLOBAL result.s, userInput.a
result.s = IIF(userInput MOD 2 = 0, "Even", "Odd")
DEBUG "The number is " + result
Hopefully...
 
		 
				
		
		 
	 
				
			
		
		
			
				
																			
								Quin  
						Addict 			
		Posts:  1145 Joined:  Thu Mar 31, 2022 7:03 pmLocation:  Colorado, United States
				Contact: 
				
			 
				
		 
		
						
						
													
							
						
									
						Post 
					 
								by Quin  Thu Jul 24, 2025 10:36 pm 
			
			
			
			
			This has been requested many times. I've concluded that it'll never happen.
			
			
									
									
						 
		 
				
		
		 
	 
	
						
		
		
			
				
																			
								AZJIO 							 
						Addict 			
		Posts:  2227 Joined:  Sun May 14, 2017 1:48 am 
		
						
						
													
							
						
									
						Post 
					 
								by AZJIO  Thu Jul 24, 2025 10:54 pm 
			
			
			
			
			PureAutoIt 
Code: Select all 
Macro IIf(expr, truepart, falsepart=__expr_null__.b)
	If expr
		truepart
	Else
		falsepart
	EndIf
EndMacrobds107  wrote: Thu Jul 24, 2025 9:50 pm Code: Select all 
result.s = IIF(userInput MOD 2 = 0, "Even", "Odd") 
		 
				
		
		 
	 
	
						
		
		
			
				
																			
								Quin  
						Addict 			
		Posts:  1145 Joined:  Thu Mar 31, 2022 7:03 pmLocation:  Colorado, United States
				Contact: 
				
			 
				
		 
		
						
						
													
							
						
									
						Post 
					 
								by Quin  Thu Jul 24, 2025 11:01 pm 
			
			
			
			
			AZJIO  wrote: Thu Jul 24, 2025 10:54 pm PureAutoIt 
Code: Select all 
Macro IIf(expr, truepart, falsepart=__expr_null__.b)
	If expr
		truepart
	Else
		falsepart
	EndIf
EndMacro
Only works in super basic cases. I can't do this for example:
Code: Select all 
MessageRequester("Current score is", Str(Points) + " " + Iif(Points = 1, "point", "points"))
That's why I'd like it to be a language feature, not a new function. But we know how Fred feels about those.
 
		 
				
		
		 
	 
	
						
		
		
			
				
																			
								AZJIO 							 
						Addict 			
		Posts:  2227 Joined:  Sun May 14, 2017 1:48 am 
		
						
						
													
							
						
									
						Post 
					 
								by AZJIO  Thu Jul 24, 2025 11:07 pm 
			
			
			
			
			Code: Select all 
Procedure.s IIF(expr, truepart.s, falsepart.s)
	If expr
		ProcedureReturn truepart
	Else
		ProcedureReturn falsepart
	EndIf
EndProcedure
Global result.s, userInput.a = 1
result.s = IIF(userInput & 1, "Odd", "Even")
Debug "The number is " + result
Global Points = 1
MessageRequester("Current score is", Str(Points) + " " + Iif(Bool(Points = 1), "point", "points")) 
		 
				
		
		 
	 
	
						
		
		
			
				
																			
								ebs 							 
						Enthusiast 			
		Posts:  562 Joined:  Fri Apr 25, 2003 11:08 pm 
		
						
						
													
							
						
									
						Post 
					 
								by ebs  Thu Aug 28, 2025 2:36 pm 
			
			
			
			
			Only because I'm 
extremely  lazy (apologies to AZJIO):
Code: Select all 
Macro IIF(_expr, _truepart, _falsepart)
  IIFX(Bool(_expr), _truepart, _falsepart)
EndMacro
Procedure.s IIFX(expr, truepart.s, falsepart.s)
	If expr
		ProcedureReturn truepart
  Else
		ProcedureReturn falsepart
  EndIf
EndProcedure
Global result.s, userInput.a = 1
result.s = IIF(userInput & 1, "Odd", "Even")
Debug "The number is " + result
Global Points = 1
MessageRequester("Current score is", Str(Points) + " " + IIF(Points = 1, "point", "points")) 
		 
				
		
		 
	 
	
						
		
		
			
				
								Piero 							 
						Addict 			
		Posts:  1044 Joined:  Sat Apr 29, 2023 6:04 pmLocation:  Italy 
		
						
						
													
							
						
									
						Post 
					 
								by Piero  Thu Aug 28, 2025 5:09 pm 
			
			
			
			
			ebs  wrote: Thu Aug 28, 2025 2:36 pm Macro IIF(_expr,
That's great, I didn't know/remember!
PS: IIFs$  
Code: Select all 
Points = 10
Debug "Score: " + Str(Points) + " Point" +
   Mid("s",Bool(Points=1)+1) +" ("+ StringField("Even|Odd",Points&1+1,"|") +")" 
		 
				
		
		 
	 
	
						
		
		
			
				
								Piero 							 
						Addict 			
		Posts:  1044 Joined:  Sat Apr 29, 2023 6:04 pmLocation:  Italy 
		
						
						
													
							
						
									
						Post 
					 
								by Piero  Thu Aug 28, 2025 9:34 pm 
			
			
			
			
			Summarizing:
Code: Select all 
Macro IIF(e,s)
   StringField(s,Bool(Not(e))+1,"|")
EndMacro
x=10
Debug ""+x+" Point"+ IIF(x=1, "|s")
Debug ""+x+" is "+ IIF(x&1, "Odd|Even")
Debug IIF(1=0 or 0=0, "True|Not True")