C语言学习(九)——C判断三元运算符

1.三元运算符基础使用

三元运算符(也称条件运算符 ),是C语言中唯一的三目运算符,用一行代码就能完成简单的条件判断+赋值,适合场景简单、逻辑单一的二选一需求,让代码更简介,本质是if...else的"简化写法"。

核心语法:

复制代码
条件表达式?表达式1:表达式2;

注意:

  • 三元运算符是运算符,不是语句
  • 表达式1和2的类型必须一致(比如都是int、或者都是float)

示例:判断成绩是否合格

复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int score;
	printf("请输入成绩(0-100):");
	scanf("%d", &score);
	char* result = (score >= 60) ? "及格" : "不及格";
	//char* result = (score >= 90) ? "优秀" : (score >= 80) ? "良好" : (score >= 60) ? "及格" : "不及格";
	printf("成绩:%d,结果:%s\\n", score, result);
	return 0;
}

//结果:
请输入成绩(0-100):78
成绩:78,结果:及格

2.最容易犯的 3 个错误

错误 1:表达式类型不一致

复制代码
// 错误写法:表达式1是int,表达式2是char*,类型不匹配
int num = (a>5) ? 10 : "小于5";

解决:确保表达式 1 和 表达式 2 类型完全一致(比如都是 int、都是字符串)。

错误 2:遗漏括号导致优先级错误

复制代码
int res = a > b ? a + 10 : b + 20;

解决:给条件表达式加括号,提升可读性 + 避免优先级问题:

复制代码
int res = (a > b) ? (a + 10) : (b + 20);

错误 3:用三元运算符执行多行代码

复制代码
(a>5) ? printf("大\\n"); a++ : printf("小\\n"); b++;

解决 :需要执行多行代码时,改用 if...else,不要强行用三元运算符。

3. 综合实战:三元运算符 + switch 结合使用

复制代码
#include <stdio.h>

int main() {
    int num;
    printf("请输入1-4的数字:");
    scanf("%d", &num);
    
    // 三元运算符先判断输入是否合法
    int is_valid = (num >= 1 && num <= 4) ? 1 : 0;
    
    if (is_valid) {
        switch (num) {
            case 1: printf("你选了1:早餐\\n"); break;
            case 2: printf("你选了2:午餐\\n"); break;
            case 3: printf("你选了3:晚餐\\n"); break;
            case 4: printf("你选了4:夜宵\\n"); break;
        }
    } else {
        printf("输入错误!\\n");
    }
    return 0;
}
相关推荐
xieliyu.1 分钟前
计算机网络‑IP 协议解析:核心特性总结
网络·笔记·网络协议·学习·tcp/ip·计算机网络
晴天的雨.9923 分钟前
类和对象下(内部类,匿名对象,对象拷贝时的编译器优化)
开发语言·c++·算法
陈年老古董6 分钟前
PyTorch 实现 MNIST 手写数字识别学习笔记
笔记·python·深度学习·学习
其实防守也摸鱼7 分钟前
智能体推荐:精选 AI Agent 工具与实战指南
运维·开发语言·人工智能·学习·web安全·自动化
always_TT7 分钟前
【Python 字符串格式化:format() 方法】
android·开发语言·python
小义_11 分钟前
JDK 深度解析
java·linux·开发语言·python·面试
智购科技自动售货机工厂26 分钟前
2026自动售货机异常重启根因分析:从日志挖掘到内存取证的技术实践~YH
开发语言·数据库·单片机·嵌入式硬件·人机交互
Escalating_xu32 分钟前
【C++类和对象(上)】从类的定义、封装与对象模型到内存对齐和 this 指针
开发语言·前端·c++
吃着火锅x唱着歌36 分钟前
Effective C++ 学习笔记 条款45 运用成员函数模板接受所有兼容类型
c++·笔记·学习
阿里嘎多学长37 分钟前
2026-08-30 GitHub 热点项目精选
开发语言·程序员·github·代码托管