C Programming: Conditional (Ternary) Operator
Conditional Operator in C Programming
Overview
In C, the conditional operator ?: is a shorthand for an if-else statement. It is called the ternary operator because it operates on three expressions:
Exp1 ? Exp2 : Exp3;
- Exp1: The condition to evaluate.
- Exp2: The result if Exp1 is true (non-zero).
- Exp3: The result if Exp1 is false (zero).
The ternary operator allows for more concise code, especially in simple conditional expressions.
Syntax:
Exp1 ? Exp2 : Exp3;
- If Exp1 evaluates to true (non-zero), Exp2 is executed.
- If Exp1 evaluates to false (zero), Exp3 is executed.
Key Topics:
- The conditional operator ?: is a compact way of writing an if-else statement.
- It is useful when you need to assign values based on a condition in a single line.
- Only one of the two expressions (Exp2 or Exp3) is evaluated based on the condition.
Example 1: Basic Conditional Operator usage
The conditional operator compares two values and assigns the larger one to a variable.
Code:
#include <stdio.h>
int main() {
int a = 10, b = 20;
// Use of the conditional operator
int max = (a > b) ? a : b; // If 'a' is greater than 'b', assign 'a' to 'max', else assign 'b'
printf("The maximum value is: %d\n", max); // Output will be 20
return 0;
}
Output:
The maximum value is: 20.
Explanation:
- The conditional operator checks if a > b.
- Since this condition is false (10 is not greater than 20), the value of b (20) is assigned to max.
Example 2: Checking for Even or Odd
The conditional operator checks whether a number is even or odd and returns the corresponding result.
Code:
#include <stdio.h>
int main() {
int num = 5;
// Check if the number is even or odd using the conditional operator
const char *result = (num % 2 == 0) ? "Even" : "Odd"; // If 'num' is divisible by 2, it's even; otherwise, it's odd
printf("%d is %s\n", num, result); // Output will be 5 is Odd
return 0;
}
Output:
5 is Odd.
Explanation:
- The conditional operator checks if num % 2 == 0 (whether the number is even).
- Since 5 is not divisible by 2, the string "Odd" is assigned to result.
Example 3: Simplifying Multiple Conditional assignments
Nested conditional operators allow checking for multiple conditions concisely.
Code:
#include <stdio.h>
int main() {
int num = -10;
// Determine if the number is positive, negative, or zero
const char *result = (num > 0) ? "Positive" : ((num < 0) ? "Negative" : "Zero"); // Nested conditional operators
printf("%d is %s\n", num, result); // Output will be -10 is Negative
return 0;
}
Output:
-10 is Negative.
Explanation:
- The outer conditional checks if num > 0. Since this is false, it moves to the inner conditional.
- The inner conditional checks if num < 0. Since this is true, "Negative" is assigned to result.
Example 4: Conditional Operator in Function return
The conditional operator can be used in functions to return values based on conditions.
Code:
#include <stdio.h>
// Function to return the smaller of two numbers using the conditional operator
int min(int a, int b) {
return (a < b) ? a : b; // If 'a' is less than 'b', return 'a', else return 'b'
}
int main() {
int x = 15, y = 25;
printf("The minimum value is: %d\n", min(x, y)); // Output will be 15
return 0;
}
Output:
The minimum value is: 15.
Explanation:
- The function min uses the conditional operator to return the smaller of the two arguments.
- Since 15 is less than 25, min(x, y) returns 15.
Example 5: Conditional Assignment in expressions
The conditional operator can be used within expressions to simplify logic.
Code:
#include <stdio.h>
int main() {
int a = 5, b = 10;
// Use the conditional operator directly in an expression
int result = (a < b) ? (a + b) : (a - b); // If 'a' is less than 'b', result is 'a + b', else it's 'a - b'
printf("Result: %d\n", result); // Output will be 15
return 0;
}
Output:
Result: 15.
Explanation:
- The condition a < b is true, so the expression a + b is evaluated.
- Since a is 5 and b is 10, the result is 15.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics