C程序设计(4.0选择结构)

在上一章我们知道了运算符有好多好多,有一个就是逻辑运算符,还有就是我并没讲赋值运算符什么“==,!=等”这些因为这一章节我们将会领略到。那么开干!!!算了,我在这里说下吧:我八月底就会在小破站上发表讲解视频:隐官陈清都的个人空间-隐官陈清都个人主页-哔哩哔哩视频大家记得关注我

然后这是我的gitte上关于这个仓库的地址,大家可以下源代码查看:安徽省专升本C程序设计: C程序设计讲解的源代码及题目解析

git使用即安装:【狂神说Java】Git最新教程通俗易懂_哔哩哔哩_bilibili以后这些话我放在文章最底部

一、if结构

  • 定义:if在英语中表如果(英语考点如虚拟语气);在这就是说如果满足这个条件我就执行包含的语句,如果不满足我就不执行if包含的语句。以下为基本结构:
if(表达式){ //如果满足这个我就执行这个
    语句1
}else if(表达式){ //上面那个没满足但是满足了这个我就执行这个
    语句2
}
else{  //以上都没满足那就执行这个
    语句3
}
/*
这是基本结构而已你可以只写一个if,此处不想废话太多
一句话总结:“如果”,“那么”,“否则”分别表示以上if,else if,else
所以根据自己需要的结构进行搭配即可
*/

 

#include <stdio.h>
main() {
	//现在我要通过输入的年纪表示你是否是成年还是中年还是老年
	unsigned int age; //因为年纪不可能取负数所以选择无符号数
	printf("请输入你的年龄:");
	scanf("%u", &age);  //这里注意要是%u(输入一个无符号数)更加严谨,
                        //如果是%d在我这也可以但是不严谨!考试最重要的就是严谨
	if (age < 18) {  //此处写的就是如果没到18
		printf("您还未成年,此页面你不能查看!!");
	}
	else if (age>=18 && age<30) { //这里就是判断是否大于18并且要小于30
		printf("您已成年");
	}
	else if (age >= 30 && age<60) { //&&表示and既满足大于等于30 又要小于60
		//你不这么写淡饭是满足以上大于18的就在上面的判断分支中执行了
		printf("您以中年");
	}
	else if (age >= 60 && age<=100) {
		printf("您以老年,老不羞的还看此页面!!!!");
	}else {
		printf("你看看你输入的年龄可是能达到的?");
	}

}

 解答:

  1. &&表示并且(同真为正,否则为假)||表示或者(同假为假,否则为真)!表示取反(这个一般在!=中看到的多,但是有点差距这里是取反,即真为假,假为真!而!=表示不等于)
  2. 为什么加上unsigned后输入负数能走进else而不加则进入小于18的分支?because:如输入-12时,有符号整数 -12 ,其二进制表示(假设为 32 位)为 11111111 11111111 11111111 11110100 。当把这个二进制解释为无符号整数时,它就变成了一个很大的数 4294967284 。
  3. 其实我还想讲>,<,>=,<=,!=的但是我觉得这个吧就是数学里面的常识,需要注意的就是=要一直在右边,不要写成=>

 补充:

最后本帅哥再来讲解&&这个逻辑运算符和&这类运算符的区别哈!

  • 首先此选择结构可以里面再嵌套判断的,知道吧!然后后续讲解的循环也是可以嵌套的,你只用记住考试中的嵌套指的就是:大盒子里面还装了小盒子,执行最终那个满足条件的盒子里面的语句!我是害怕新手不明白嵌套这个概念。因为我会最后(总结整本书指点的时候)写好多练习题里面就会出现嵌套呀什么的!关注我持续更新
#include <stdio.h>
//经典判断润平年题。即闰年年份只能被4或400整除不能被100整除
main(){
    int year;
    printf("请输入年份:");
    scanf("%d",&year);
    if(year%400==0 || year%4==0 && year%100!=0){
        printf("是闰年");
    }else{
        printf("不是闰年");
    }
}

二、switch实现分支结构

  • 定义:switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易⽤、可读性更好的形式。
//基本结构
switch(变量){
    cash 常量值1: 
        语句1;
        break; //跳出判断
    cash 常量值2:
        语句2;
        break;
    default:  //若以上的cash都不满足则执行这个
        语句;
}
#include <stdio.h>
main() {
	Switch_Test(); //调用判断星期函数
}
Switch_Test() {
	int week;
	printf("请输入1-7数字:");
	scanf("%d",&week);
	switch (week) {  //对变量中的常数值开始以下的判断
		case 1:    
			printf("周一");
			break;  //break跳出判断的,不写他将会执行下面能满足语句
		case 2:
			printf("周二");
			break;
		case 3:
			printf("周三");
			break;
		case 4:
			printf("周四");
			break;
		case 5:
			printf("周五");
			break;
		case 6:
			printf("周六");
			break;
		case 7:
			printf("周日");
			break;
		default:  //若以上的都不满足将执行这条语句,因为这个是最后一条语句也必须是,不用加break
			printf("输入数字不满足条件");
	}

}

三、逻辑运算符与位运算符的区别

逻辑运算符 &&(逻辑与)、||(逻辑或)和 !(逻辑非)用于对条件的逻辑组合和取反操作,操作数通常是布尔值(真或假),其结果也是布尔值。

  • &&:当且仅当两个操作数都为真时,结果为真;否则为假。
  • ||:当至少有一个操作数为真时,结果为真;只有两个操作数都为假时,结果为假。
  • !:对操作数取反,如果操作数为真,则结果为假;如果操作数为假,则结果为真。

位运算符 &(按位与)、|(按位或)和 ~(按位取反)用于对操作数的位进行操作。

  • &:对两个操作数的对应位进行与运算,只有当两个对应位都为 1 时,结果位才为 1,否则为 0。
  • |:对两个操作数的对应位进行或运算,只要两个对应位中有一个为 1,结果位就为 1,只有当两个对应位都为 0 时,结果位才为 0。
  • ~:对操作数的每一位取反,1 变为 0,0 变为 1。

主要区别在于逻辑运算符是基于布尔值进行逻辑判断,而位运算符是直接对操作数的位进行操作。所以在考试时擦亮双眼辨别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值