C语言学习(二)-基础语法、控制语句、循环语句

本文详细介绍了编程中的基本运算符(如取反、左移、右移),类型转换规则,以及控制结构如if、else、switch、循环(while、do-while、for)和跳转语句(break,continue,goto)。通过实例展示了如何在实际编程中运用这些概念。
摘要由CSDN通过智能技术生成

前言

话不多说,我们接着上期继续学习!

基础语法

运算符

取反运算(~)

按位取反运算:补码取反,再将取反后的补码转为原码;

ps:无符号的数据,取反后最高位为1,也不需要逆运算。

具体代码以及分析如下:

左移运算符(<<)

将数字的二进制补码全部向左移动,空出来的位置补0,超出范围的二进制数丢弃

注意:我们在此进行一个字节的演示,即int8_t  如果用int进行演示,int是4个字节,在演示过程中会出现数据溢出不知去向的问题,会带来很多麻烦。

特殊的点:

1. 如果是无符号数【正数】,在发生左移之后,最高位是1,也不需要进行逆运算。

2. 如果是有符号数【负数】,在发生左移之后,最高位是1,则需要逆运算。

3. 如果左移之后,得到 1000 0000 也不需要逆运算回来,这个就是特殊的二进制排列组合: -128

代码以及解释示例:

右移运算符(>>)

将数字的二进制补码全部向右移动,空出来的位置补0,超出范围的二进制数丢弃;

代码以及解释示例:

此处-20要注意的是,写出-20的原码我们要对它的补码进行位移,当符号位是1的时候,右移后左边要用1补充后在进行逆运算得到最终结果。

案例

学习了左移右移运算符,我们这里进行简单的实战,对所学知识进行加深巩固。

案例一代码以及分析(位移后与原来值或运算)

同理我们来看一下案例二

案例三代码以及分析(位移后取反与原来值与运算)

由案例三我们来看一下案例四

案例五(位移后与原来值异或运算)

案例六

案例七(判断某一位是否为0为1)

运算优先级

不同的运算符默认下具备不同的优先级,我们现用现查就可以,这里做个简单介绍,小伙伴们了解一下即可。

类型转换

数据有不同的类型,不同类型数据之间进行混合运算时涉及到类型的转换问题。

  • 转换的方法有两种:
    • 自动转换(隐式转换):遵循一定的规则,由编译系统自动完成
    • 强制类型转换:把表达式的运算结果强制转换成所需的数据类型
      • 语法格式: (类型)变量或常量
  • 类型转换的原则:
    • 占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低。

代码以及解释示例

控制语句

程序执行的三大流程

  • 顺序 : 从上向下, 顺序执行代码
  • 分支 : 根据条件判断, 决定执行代码的分支
  • 循环 : 让特定代码重复的执行

分支语句

if语句

语法格式:

案例

案例需求

  • 定义一个整数变量记录年龄
  • 判断是否满 18 岁 (>=)
  • 如果满 18 岁,允许进网吧嗨皮

if...else语句

语法格式:

案例需求

  • 定义一个整数变量记录年龄
  • 判断是否满 18 岁 (>=)
  • 如果满 18 岁,允许进网吧嗨皮
  • 否则,提示回家写作业

三元(目)运算符

运算符:  ?:

术语:  三元(目)运算符

示例: a>b?a:b

结果:如果a>b,整体结果为a,否则,整体结果为b

if...else if...else语句

语法格式:

案例

案例需求:

  • 天猫超市双 11 推出以下优惠促销活动:
    • 购物满 50 元,打 9 折;
    • 购物满 100 元,打 8 折;
    • 购物满 200 元,打 7 折;
    • 购物满 300 元,打 6 折;

中间代码原始代码如下:

switch语句

  • 测试一个表达式是否等于一些可能的值,并根据表达式的值执行相应的代码块,可以使用switch语言实现

语法格式

案例

案例需求

  • 输入int类型的数据,根据结果输出不同的内容
    • 输入1:输出Monday
    • 输入2:输出Tuesday
    • 输入3:输出Wednesday
    • 输入4:输出Thursday
    • 输入5:输出Friday
    • 输入6:输出Saturday
    • 输入7:输出Sunday
    • 输入其它:输出error

当然头文件此处没有展示,但是是一定有的。对于switch有一些特征如下:

循环语句

while语句

语法格式

案例

do...while语句

语法格式

案例

for语句

语法格式

案例

死循环

  • 条件永远为真的循环就是死循环

案例

循环案例

跳转关键字

break

  • 循环的break说明
  • 某一条件满足时,不再执行循环体中后续重复的代码,并退出循环

continue

  • 某一条件满足时,不再执行本次循环体中后续重复的代码,但进入下一次循环判断
  • while循环,continue 之前一定要修改计数器(条件变量),否则,导致死循环

goto

  • goto用于无条件跳转
  • 在一种情况下可以使用goto语句:从一组嵌套的循环中跳出
  • goto语句可以导致代码不易理解和维护,并且容易引入不必要的错误。因此,除非必要,最好不要使用goto语句

总结

今天的学习就到这里啦,下期再见!

  • 12
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

'Magic'

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值