C语言入门笔记(2)--运算符与分支(选择)结构

物协 C Gateway Course 23.10.5-7 参考笔记

在这里插入图片描述

1.运算符

1.1算数运算符

用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(–)共七种。

算术运算符通常适用于数字类型的操作数,例如int、float、double等。下面是一些使用算术运算符的示例:

int a = 5, b = 7;
int c = a + b;    // c为12
int d = a - b;    // d为-2
int e = a * b;    // e为35
int f = b / a;    // f为1
int g = b % a;    // g为2

i++ 先用再加

++i 先加再用

1.2关系运算符

关系运算符在C语言中主要用于从两个值(通常是数值)之间创建布尔表达式,返回的结果是真或假。下面是一些常见的关系运算符:。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。

int a = 5, b = 7;
int c = a > b;    // c为0
int d = a < b;    // d为1
int e = a >= b;   // e为0
int f = a <= b;   // f为1
int g = a == b;   // g为0
int h = a != b;   // h为1

1.3逻辑运算符

用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

逻辑运算符的操作数可以是任何类型的表达式,但是它们通常用于布尔表达式的计算。下面是一些示例

与(&&): 如果两个操作数都非零,则条件为真。

或(||): 如果两个操作数中有任意一个非零,则条件为真。

非(!): 如果条件为真则逻辑非运算符将使其为假。

int a = 5, b = 7;
int x = (a > 0) && (b > 0);    // x为1
int y = (a < 0) || (b < 0);    // y为0
int z = !(a > 0);              // z为0

2.选择结构

2.1if(…) {…}

1.if (表达式) {语句;}

表达式:
a,用非 0 值表示真,用 0 表示假;
b,if(flag) 相当于 if(flag!=0);
c,浮点数无法与 0 比较,只能用近似的值比较;例: 1e-6 等于1x10的-6次方可以看成0来使用;

2.用于单分支选择结构;
3.如含有交叉关系,使用并列的if语句;

例1:输出两个整数中的最大值

#include <stdio.h>
void main()
{
     int a,b;
     printf("请输入两个整数:");
     scanf("%d %d",&a,&b);
     if(a>b)
     {
     printf("max = %d\n",a);
     }
     if(a<b)
     {
     printf("max = %d\n",b);
     }
}

2.2if(…) {…} else {…}

  1. 一般形式: if(表达式) {语句1; } else { 语句2;}
  2. 用于双分支控制的条件语句;
  3. 用于非此即彼的关系时;
  4. 零件优良差
  5. 可嵌套
#include<stdio.h>

int main(){
	float size;
	printf("请输入零件尺寸\n");
	scanf("%f",&size);
	if(size >= 9.8 && size <= 10.2)
	{
		printf("零件的质量为优");
	}else
		{
			if(size >= 9.6 && size < 9.8||size >= 10.2 && size < 10.4)
				{
					printf("零件的质量为良");
				}else 
					{if(size >= 9.4 && size < 9.6 || size > 10.4 && size <= 10.6)
						{
							printf("零件的质量为差");
						}else
							{
								printf("零件的质量为不合格");
							}
					}
    	}
 	return 0;
} 

2.3if(…) {…} else if(…) {…}

  1. 一般形式:
    if(表达式1) { 语句1;}
    else if(表达式2) {语句2;}

    else if(表达式n){语句n;}
    else{语句n+1;}
  2. 用于多分支的控制的条件语句;

判断字符

#include <stdio.h>
void main()
{
	char ch;
	printf("请输入一个字符:");
	ch = getchar();/*getchar、putchar专门用于字符输入输出;
				     getchar()写法上要写为 变量 = getchar();
					 putchar()用法为putchar(变量);
					 putchar('\n')输出一个控制符;
					 putchar('字母/字符');输出字母/字符;
					 */
	if(ch<=31)
	{
		printf("这是一个控制字符或通讯专用字符!\n");
	}
	else if(ch >= '0' && ch <= '9')
	{
		printf("这是一个数字!\n");
	}
	else if(ch >= 'A' && ch <= 'Z')
	{
		printf("这是一个大写字母!\n");
	}
	else if(ch >= 'a' && ch <= 'z')
	{
		printf("这是一个小写字母!\n");
	}
	else
	{
		printf("这是其他字符!\n");
	}
}

2.4 switch case

2.4.1.基本语法结构
switch(整型常量/整型变量/整型表达式){
    case var1:
        break;
    case var2:
        break;
    case var2:
        break;
    default:
        break;
}
2.4.2.为何要用switch case

switch 语句也是一种分支语句,常常用于多分支的情况。这种多分支,一般指的是很多很多分支,而且判定条件主要以整型为主,部分情况用if else来书写过于复杂

例题:输入数字输出对应的周几

#include <stdio.h>

int main(){
	int day = 0;
	printf("请输入周几的阿拉伯数字:");
	scanf("%d",&day);
	switch (day) {
		case 1:
			printf("星期一\n");
			break;
		case 2:
			printf("星期二\n");
			break;
		case 3:
			printf("星期三\n");
			break;
		case 4:
			printf("星期四\n");
			break;
		case 5:
			printf("星期五\n");
			break;
		case 6:
			printf("星期六\n");
			break;
		case 7:
			printf("星期七\n");
			break;
		case 0:
			printf("退出\n");
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
	} 
	return 0;
} 
2.4.3何为case

case本质是进行判定功能,与switch里面的语句相比较,如果相同,则执行语句,不相同则找下一个case比较,直至所有case语句都不与switch相同,此时执行default语句

case决定了从哪开始执行语句,所以说case是判定功能

2.4.3何为break

break本质是执行分支功能

如果将上述例题中的break删去,则运行结果为:

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=C%3A%5CUsers%5CUozumi%5CAppData%5CRoaming%5CTypora%请添加图片描述
5Ctypora-user-images%5Cimage-20231007222317620.png&pos_id=img-Wg779zfF-1696688989033)

以发现当没有break时,会继续执行下一条case语句,当遇到break时,不再执行。

switch语句是没有任何功能的,真正使得switch结构实现类似if else功能的是由于casebreak语句的配合。

2.4.4规定

switch语句必须是整型常量/整型变量/整型表达式

case语句必须是整型常量/整型常量表达式,类似const修饰的常量称为只读变量也不可以

2.4.5 default

作用:当所有的case语句都不与switch语句匹配时,这时执行default语句。强烈建议写在最后!!!

switch语句是没有任何功能的,真正使得switch结构实现类似if else功能的是由于casebreak语句的配合。

2.4.4规定

switch语句必须是整型常量/整型变量/整型表达式

case语句必须是整型常量/整型常量表达式,类似const修饰的常量称为只读变量也不可以

2.4.5 default

作用:当所有的case语句都不与switch语句匹配时,这时执行default语句。强烈建议写在最后!!!

default语句的位置是非常自由的

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值