C语言操作符if语句好习惯 详解分析操作符(详解4)

news2024/9/24 1:27:41

各位少年:

前言

还记得我们上一章讲过一个比较抽象的代码,它要比较两次都是真的情况下才能打印,那么很显然这样写代码是有弊端的?哪我们C语言之父丹尼斯.里奇,先介绍一下上次拉掉了if语句的好习惯

好再分享一些操作符

C语言用于比较表达式,称为关系表达式,里面使用的运算符就称为关系运算符,主要有下面6个

<大于运算符
>小于运算符
>=大于等于运算符
<=小于等于运算符
==相等运算符
!=不相等运算符

          

目录

前言

            好接下来介绍使用if语句的好习惯                                                                                                        代码示例                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 


代码示例

int main()
{
int a=3;
if(5=a)//赋值
printf("hehe\n");



return 0;
}

很明显这个if语句的表达式出错了,我们想比较结果我们写成了赋值,很显然结果只要是非零,都会打印,所以为了避免这样的错误很多老C/C++程序员,都把常量放在前面看代码例子。

#include<stdio.h>
int main()
{
int a=3;
if(5==a)
printf("hehe\n");


return 0;
}

 建议这样写减少报错的可能,因为常量没办法改变,这样写如果只写一个等号,就会报错 这样就不会出现第一个代码图的情况了。

  面试官也会认同你这种写法的,虚伪大家能能融会贯通,希望对大家有所帮助。

好,我们再来分享个代码,多个关系运算符不宜连用。

i<j<k

上面示例中,连续使用两个小于运算符。这是合法表达式,不会报错,但是通常达不到想要的结果,即不是保证变量j的值在i和k之间。因此关系运算符是从左到右计算,所以实际执行的是下面的表达式。

(i<j)<k

  上面式子中,i<j返回0和1,所以最终是0和1与变量k进行比较。 如果想要判断变量j的值是否在i和k之间,应该用下面的写法  。

if(x<y&&y<x)//&&并且

这个表达式的结果必须两边必须都是真 

条件操作符 

exp1?exp2;exp3

表达式1

真                表达式2计算,表达式3不计算,表达式2的结果是整个表达式的结果                            假                表达式2不计算,表达式3计算,表达式3的结果 是整个表达式的结果

好我们看两端代码

if (a > 5)
		b = 3;
	else
		b = -3;

   这里是不是就很复杂了 大家想到用三目操作符,好我们来给三目操作符的写法,分享给大家

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d", &a);
	
	b = (a > 5 ? 3 : 3);
	printf("%d", b);
	return 0;
}

         

目录

前言

          

          逻辑操作符:&&,||,|


逻辑运算 符提供逻辑判断功能,由于构建更复杂的表达式,主要看下面三个运算符 。

| :逻辑取反运算符(改变单个表达式的真假)

&& :与运算符,就是并且的意思(两边都为真,只要一边为假,就不会执行)

||或运算符,就是或者的意思(两侧至少有一个表达式真,则为真,负则为假)

C语言中非0表示真 0表示假

逻辑取反运算符

a=!a
非0取反后是0
0 1

我来分享个代码示例,用与运算符和或运算符,来判断闰年,我们都知道闰年的判断方式,我们数学课本中对闰年判断能不能被四整除,但其实还有几个点能被四整除的时,不能被100整除,或者能被四百整除,好大家知道了,我们上代码,希望对大家有所帮助。

#include<stdio.h>
int main()
{
	int year = 0;
	scanf("%d", &year);
	if (((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)))
	{
		printf("是闰年\n");
	}
	else
	{
		printf("不是闰年\n");
	}
	return 0;
}

好大家能理解上面的代码的话,我们再来介绍个东西,叫做短路。

                                                                                                                                                                        由于篇章问题,这题分享到这里,希望对大家有所帮助。拜拜                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1335255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode 38. 外观数列(medium)(优质解法)

链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 代码&#xff1a; class Solution {public String countAndSay(int n) {//要进行 n - 1 次描述才能得到结果// last 代表当前要描述的字符串String last"1";// ret 代表描述…

Apache Commons BeanUtils: JavaBean操作的艺术

第1部分&#xff1a;Apache Commons BeanUtils 简介 咱们今天聊聊Apache Commons BeanUtils。这货简直就是处理JavaBean的利器&#xff0c;用起来又方便又快捷。不管是属性拷贝、类型转换&#xff0c;还是动态访问&#xff0c;BeanUtils都能轻松应对。 BeanUtils是啥&#xf…

【python】Ubuntu下安装spyder及matplotlib中文显示

一、查看Ubuntu版本 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy尝试用cat /etc/debian_version命令&#xff0c;竟然可以显示出来Debian的版本。 $ cat /etc/debian_version …

UG图层的使用

在绘图过程中&#xff0c;我们可能会有点、线、面、基准等&#xff0c;要管理好这些图素&#xff0c;就要运用到图层 图层的作用 1、规范化 不同图素放置在规定的图层达到统一标准 2、方便绘图与审阅 可单独控制每个图层的显示与隐藏 3、其他模块需要 工程图、装配、加…

QT trimmed和simplified

trimmed&#xff1a;去除了字符串开头前和结尾后的空白&#xff1b; simplified&#xff1a;去除了字符串开头前和结尾后的空白&#xff0c;以及中间内部的空白字符也去掉&#xff08;\t,\n,\v,\f,\r和 &#xff09; 代码&#xff1a; QString str " 1 2 3 4 5 …

OpenAI换血大震动始末:“ChatGPT之父”奥特曼,缘何被“扫地出门”?

近期&#xff0c;AI业界发生了一场“大地震”。作为聊天机器人ChatGPT的开发者&#xff0c;OpenAI无疑是最受关注的人工智能公司之一。就是这家公司的联合创始人、CEO、有“ChatGPT之父”之称的阿尔特曼在“疯狂的5天”里&#xff0c;经历了被闪电免职、加入微软、最终又官复原…

如何解决HTTP 404错误,这里给出详细解决办法

404错误是一个HTTP状态代码,这意味着你试图在网站上访问的页面在他们的服务器上找不到。 需要明确的是,该错误表示虽然服务器本身是可访问的,但显示该错误的特定页面是不可访问的。 个别网站经常自定义这个错误信息。所以,请记住,错误可能会以任何可以想象的方式出现,这…

MyBatis:Generator

MyBatis Generator附批量操作分页查询存储过程 Generator 介绍网址&#xff1a;Introduction to MyBatis Generator Generator &#xff0c;一个用于 MyBatis 的代码生成工具&#xff0c;可以根据数据库表结构自动生成对应的实体类、DAO 接口和 SQL 映射文件&#xff0c;提高…

让某个页面一直处于最前面,可以屏蔽切屏检测

前言 学习通智慧树网课分屏&#xff0c;让某个页面一直处于最前面&#xff0c;可以屏蔽切屏检测。 页面一直处于最前面 前言1 安装包2 使用 1 安装包 https://download.csdn.net/download/qq_44850489/76684366 2 使用 一直下一步就可以 选择要放到前面的窗口&#xff0c…

Python 爬虫之下载歌曲(一)

爬取某酷音乐平台歌曲 文章目录 爬取某酷音乐平台歌曲前言一、基本流程二、代码编写三、效果展示总结 前言 老是爬视频有点乏味&#xff0c;换个口味。今天出个爬歌曲的。后续由易到难也出个相关的系列教程。 一、基本流程 打开某酷网站播放某个歌曲&#xff0c;复制这个歌曲…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Progress进度条组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Progress进度条组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Progress组件 进度条也是UI开发最常用的组件之一&#xff0c;进度条组件…

react 路由v6

这里是区别&#xff1a;V5 vs V6 这里是官网&#xff1a;可以查看更多高级属性 一、基本使用&#xff1a; 1、配置文件 src/routes/index import React from "react";const Home React.lazy(() > import("../Pages/Home")); const About React.laz…

2023-12-25 事业-代号s-shein分析

前阵子SHEIN看的比较多,几乎把市面上的报告和趋势都研究了下,总结了这篇关于SHEIN的一切,从0开始全面的了解下SHEIN,比较通俗易懂,可以看看。 如果你还不了解SHEIN这家公司,想知道知道,可以翻看下,快速get这家公司的点如果你想了解下这家公司怎么发展和快速提升的,可以…

taro小程序指定@代表

1.ts.config.json "paths": {"/*": ["./src/*"] } config/index.js const path require(path) alias: {: path.resolve(__dirname, .., src) },

影响差价的因素有几种?都是什么?Anzo Capital盘点

各位投资者都知道运用好差价&#xff0c;在交易市场中就能大杀四方&#xff0c;遇神杀神遇佛杀佛&#xff0c;赚钱那还不是洒洒雨&#xff0c;轻松拿捏。今天Anzo Capital就盘点一下影响差价的因素&#xff0c;希望各位投资者都能在外汇市场中如鱼得水。 首先&#xff0c;流动…

MySQL集群架构搭建以及多数据源管理实战

MySQL集群架构搭建以及多数据源管理实战 ​ 数据库的分库分表操作&#xff0c;是互联网大型应用所需要面对的最核心的问题。因为数据往往是一个应用最核心的价值所在。但是&#xff0c;在最开始的时候&#xff0c;需要强调下&#xff0c;在实际应用中&#xff0c;对于数据库&a…

论文解读--Compensation of Motion-Induced Phase Errors in TDM MIMO Radars

TDM MIMO雷达运动相位误差补偿 摘要 为了实现高分辨率的到达方向估计&#xff0c;需要大孔径。这可以通过提供宽虚拟孔径的多输入多输出雷达来实现。但是&#xff0c;它们的工作必须满足正交发射信号的要求。虽然发射单元的时分复用是一种低硬件成本的正交实现&#xff0c;但在…

java练习之abstract (抽象) final(最终) static(静态) 练习

1&#xff1a;分析总结&#xff1a;写出private、abstract、static、final之间能否联动使用&#xff0c;并写出分析原因 private static final 之间可以任意结合 abstract 不可以与private static final 结合使用 2&#xff1a;关于三个修饰符描述不正确的是(AD) A. static …

STM32单片机入门学习(七)-外部中断-光敏计数

光敏传感器模块: 光敏传感模块一DO端接B14,GND接GND&#xff0c;VCC接VCC,AO不接。 OLED&#xff1a; OLED:SCL接B12,SDA接B13 如图&#xff1a; main.c #include "stm32f10x.h" #include "Delay.h" //delay函数所在头文件 #include "OLED.…

自媒体实战篇:剪辑软件应用与实操

剪辑软件应用与实操 剪映基础界面认识 素材面板 导入本地素材,剪映自带素材库,音频,文本等素材合集面板播放预览 预览本地素材,,剪映自带素材库以及时间线面板中的素材的实时效果时间线面板 对素材进行基础的编辑操作,调整素材轨道等素材功能面板 可对素材或者文本等精细…