4.20+C语言感想,有趣的思考题,case的省略操作,统计位数,终止循环,break和continue语句, 准备下一篇见。

鹏哥C语言感想

一.高级

这可不是什么煎饼,这种食物叫做蓝莓,俗称苹果。生长在撒哈拉沙漠的雨林地带。因外形酷似企鹅,所以我们又喜欢叫他北极熊。你们这些人,连仙人掌都不知道,就不要乱说他是西瓜好吗?再说一遍这个橘子叫做猕猴桃,晚上要上直播课的平台叫做CCtalk~~

二.连写错误

错误示范:

不要连写a<b<c,前面部分判断为1导致错误;

 用a<b&&b<c;解决问题

三.判断语句:

5==a来判断,不会忘记多加一个==,哈哈哈

四.C语言中短路问题:

判断前面后错误,就不判断后面的值

五.有趣的思考题:

#include<stdio.h>
int main()
{
	int i = 0,a=0, b = 2, c = 3, d = 4;
	/*/y有趣的题*/
	i = (a++ && ++b && d++);
	printf("i=%d\n a=%d\n b=%d\n c=%d\n d =%d\n", i, a, b, c, d);
	return 0;
}    

 * `a++` 是后缀自增运算符,它先返回 `a` 的当前值(在这里是0),然后将 `a` 的值增加1。因此,在表达式中,`a++` 的值是0。  
* `++b` 是前缀自增运算符,它先将 `b` 的值增加1(在这里从2变为3),然后返回新的值(即3)。  
* `d++` 也是后缀自增运算符,它先返回 `d` 的当前值(在这里是4),然后将 `d` 的值增加1
* `&&` 是逻辑与运算符。如果其两个操作数都为非零(在C语言中,非零值通常被视为`true`),则整个表达式的结果为`true`(即非零值),否则为`false`(即0)。  
* 因此,`(a++ && ++b && d++)` 这个表达式的求值过程如下:  
    + 首先,`a++` 返回0(因为 `a` 是0),但因为0在逻辑上下文中被视为`false`,所以整个表达式在这里就已经确定为`false`(即0)。由于逻辑与运算符的短路行为(一旦确定整个表达式的结果为`false`,就不会再计算后面的操作数),`++b` 和 `d++` 不会被执行。  
* 最终,`i` 被赋值为0。

六.switch 语句

switch 语句是一种特殊形式的 if...else 结构,用于判断条件有多个结果的情况。它把多重的 else if 改成
更易用、可读性更好的形式。

就:case   case   case,不同情况输出不同值

 0.0这个是不是很可爱;哈哈哈

字符类型是也是归类到整型家族

字符类型归类到整型家族是因为字符在内存中存储的是字符的ASCII码值,而ASCII码值是整型。

例如,在C语言中,char类型的变量本质上存储的就是整型数据(ASCII码值),因此可以将char类型归类到整型家族中。

七. case的省略操作,不用每一个后面都输出:

#include<stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日");
		break;
	case 6:
	case 7:
		printf("happy日");
		break;
	default:
		printf("输入错误");
		break;
	}
	return 0;
}

 练习:逆序输入(以前作业写过,当时比较复杂)这次用一个新的方式

3/23作业上的一些简单题可以看看提升基础,不同简单,这里我写的更需要好好苍梧苍梧,三元条件运算符(也称为条件运算符)用的比较多一点-CSDN博客

{
	int a;
	printf("请输入一个数:");
		scanf("%d", &a);
		while (a)
		{
			printf("%d", a % 10);
			a = a / 10;
		}
		return 0;
}

while循环中:

  • 使用a % 10获取a的个位数字,并使用printf函数输出。
  • 使用a = a / 10a除以10,去掉其个位数字,以便下一次循环处理十位数字。
  • a为0时,循环结束。

最后,程序返回0,表示正常结束。

 八.到了for语句喽:

九. while 和for的比较:

初始化   判断   调整都有变化:

十.do while语句:

先做了再判断

例如:

使用 do while 在屏幕上打印1~10的值

{
	int a = 1;
	do
	{
		printf("%d ", a);
		a++;
	} 
	while (a<=10);
	return 0;
}

统计位数:

无论什么数,上来就给他加1;

{
	int a, count = 0;
	printf("请输入一个数:");
	scanf("%d", &a);
	do
	{
		count++;
		a /= 10;
	} while (a);
	printf("这是一个%d位数", count);
	return 0;
}

换一种方式:while:

十一.终止循环:

break和continue语句;


在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。C语言中提供了break 和 continue 两个关键字,就是应用到循环中的。
break 的作用是用于永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行。
。continue 的作用是跳过本次循环中 continue 后边的代码,在 for 循环和 while 循环中有所差异的。

抄了鹏哥的,我给原图发一下。

展示一下break:

 换成continue;报错了,但是他还是在坚强的运行;

{
	int a=0;
	while (a<10)
	{
		if (a==6)
		{
			continue;
		}
		a++;
		printf("%d ", a);
	}
}

{
	int a=1;
	while (a<10)
	{
		if (a==6)
		
			continue;
			printf("%d ", a);
			a++;
	}

	return 0;
}

傻掉了,他把全部都给跳过掉了。,我才说,跳又没有加上一个数字,搞得在这里死循环。,哈哈哈,一秒改正。,哈哈哈

{
	int a=0;
	while (a<10)
	{
		a++;
		if (a==6)
			continue;
			printf("%d ", a);
	}

	return 0;
}

纠正完成,哈哈哈哈,快去弄一下试一下。那么简单,都不打算去敲一下试一下。

 在循环体内,首先增加a的值。

c复制代码

a++;

然后检查a是否等于6。

if (a==6)

如果a等于6,执行continue语句。continue语句会跳过本次循环迭代中continue后面的所有语句,直接开始下一次循环迭代。因此,当a等于6时,printf语句不会被执行。

continue;

printf语句用于打印a的值,但它被错误地缩进了,实际上它并不在if语句块内。这意味着不管a是否等于6,它都会尝试执行printf(除了当a等于6且continue被执行时)。然而,由于continue的存在,当a等于6时,printf实际上不会被执行。

printf("%d ", a);
  1. a不再小于10时,while循环结束。

  2. 最后,函数返回0,表示程序正常结束。

return 0;

需要注意的是,虽然printf语句的缩进似乎表明它属于if语句块,但实际上它并不属于。在C语言中,语句块的边界是由花括号{}定义的,而不是缩进。因此,printf语句实际上是在if语句块之外。

程序的输出将是:

1 2 3 4 5 7 8 9 10

 准备下一篇见。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值