C语言-2.结构学习

发布时间 2023-10-31 23:08:08作者: cherry5277

结构

1.1顺序~

2.1选择~

3.1.1关系运算符

类型 类型 优先级
小于< 小于等于<= 优先级相同(高)
大于> 大于等于>= 优先级相同(高)
等于== 不等于!= 优先级相同 (低)

tips:将数值放前,可以判断该字符是否为前面已经运用的变量。

如3 = a ,若前面a已经被赋值,则会出现语法错误

3.1.2逻辑运算符/逻辑值

运算符 运算 结果
! 非(取反) 0变1
1变0
&& 与(and) 两个操作数都非零,结果为真;否则结果为假。
|| 或(or) 其中任何一个操作数非零,结果为真;否则结果为0

0 False假 1 True真

非0即为真

3.1.3优先级

运算符 结构类型 关联性
() 圆括号 左-右
[] 方括号 左-右
-> 指向结构体成员 左-右
++、-- 后缀自增/减
! 逻辑非
~ 按位取反
+、- 正负
(type) 强制类型转换
* 乘法
/,% 除、模操作
+、- 加、减运算
<<、>> 移位操作
<、<=、> 比较
==、!= 相等比较
& 按位与
^ 按位异或
| 按位或
&& 逻辑与
|| 逻辑或
?: 三目运算符 右-左
= 赋值
+=、-= 加等于、减等于
*=、/= 乘等于、除等于
<<=、>>= 左移等于、右移等于

正确使用括号是保证程序逻辑正确性的关键。

一般单目优先级高于双目

image-20231024105447218

3.1.4关系运算符及表达式

表达式值为逻辑值——“真”或“假”

值1代表“真” ,值0代表 “假” --非0即为真

表达式值为真或假,用1或0存储

逻辑运算的真值表

a b a && b a || b ! a

tips:如果有多个逻辑条件,需要用&&或||进行连接

禁止使用:10<=age<=18这类语句-先运算了10<=10,得出结果是0或1的逻辑值再进行判断

3.1.5条件运算符 (三目运算符) __ ? __ : __

条件运算符中 3 个子表达式的作用

三目运算符(x < 0) ? (y = 10) : (Z = 20); 等价于 转换为if语句

if (x < 0) {
    y = 10;
} else {
    z = 20;
}

条件表达式 (x < 0) ? (y = 10) : (Z = 20);

3.1.6 IF句

//语法格式:
if (表达式){
    语句1
}else
    语句2
//给定一个年份,判断是否是闰年
//普通年能被4整除且不能被100整除的为闰年,否则为平年
#include <stdio.h>
int main()
{
    scanf_s("请输入一个整数:%d",&n)
    //判断该数字能被3和5整除
    if (n % 3 == 0 && n % 5 == 0){
    	printf("该数字能被3和5整除");
    }else
    	printf("该数字不能被3和5整除");
}

3.1.7 switch语句

//基本语句
switch (expression) {
  case value1:
    // code block
    break;
  case value2:
     // code block
    break;
  default:
    // code block
//示例
#include <iostream>
using namespace std;

int main()
{
    int month;
    cout << "请输入1-12之间的整数代表月份:" << endl;
    cin >> month;

    switch (month)
    {
        case 3:
        case 4:
        case 5:
            cout << "春季" << endl;
            break; // 终止此case分支的执行
        case 6:
        case 7:
        case 8:
            cout << "夏季" << endl;
            break;
        case 9:
        case 10:
        case 11:
            cout << "秋季" << endl;
            break;
        case 12:
        case 1:
        case 2:
            cout << "冬季" << endl;
            break;
        default: // 如果上面所有的case分支都不符合,则会走到这里的default分支
            cout << "输入有误,请重新输入!" << endl;
            break;
    }

    return 0;
}

注意:
m++ > 8

-- m>8

-- m = m + 1