分支语句和循环语句

C语言与我的不解之缘(二)

分支语句

 关键词有:if else switch case break default
if 常与 else 配套使用,也可以单独使用

 if 语句和 switch 语句支持多层嵌套

if ()
{

}
else
{

}

if else 是一个语句
 说到分支语句和循环语句,就不得不提到这其中所用到的逻辑操作符和关系操作符

逻辑操作符有:&&, ||, !

  ! :逻辑取反运算符
 &&:与运算符(全为真,则为真)
注意:表达式是从左至右运算,一旦出现假,该表达式就为假,后面的式子不进行运算
 ||:或运算符(只要一个为真就全为真)
注意:表达式是从左至右运算,一旦出现真,该表达式就为真,后面的式子不进行运算
 要区分 & (按位与)和 | (按位异或),这2个有可能会搞混

short x = 5; // 二进制表示: 0000 0000 0000 0101
short y = 14; // 二进制表示:0000 0000 0000 1110
short c = 0;
// 使用 & (按位与),要先将数字用二进制表示,然后在对应
c = x & y; // c = 0000 0000 0000 0100, c = 4
//只有对应位都为 1 时才为 1

c = x && y; // x = 5 非0为真,y = 14 也为真,表达式为真:c = 1

// 使用 | (按位异或),要先将数字用二进制表示,然后在对应
c = x | y; // c = 0000 0000 0000 1111, c = 15
//只有对应位都为 0 时才为 0

//c = x || y; // x = 5 为真,表达式为真:c = 1;

// ~ (按位取反) 目前也不是特别懂,等我弄明白了在来写
if语句
#include <stdio.h>

int main()
{
	int x = 2;
	int y = 4;
	int z = 5;
	if (x>y>z)
	{
		printf("hi ");
	}
	else
	{
		printf("hello "); 
	}
	// x>y>z 的意思是 (x > y) > z, x>y 为假,表示式为0
	//0>z 为假,if语句判定为假,语句不执行
	//可能与你想要的结果不一样
	//原因是:在程序中只能写成 (x > y) && (y > z)
	return 0;
}
switch 语句

 switch 语句中的 case 只能是常量或者常量表达式,在每个case后面要加上break,除非程序不需要加,要加default
default 的位置可以任意 (在switch语句里面)

#include <stdio.h>

int main()
{
	int x = 1;
	int y = 3; 
	switch (x)
	{
		case 0printf("hi "); break;
		case 1: printf("hello "); break;
		case 3-1: printf("word "); break;
		case 3: switch (y)
				{
					// 这里可以自己加一些 case
					// switch 支持嵌套
				}
		default: printf("输入错误\n"); break; 
	}
	return 0;
}
// 可以将 break 去掉试试看会打印什么
// 只有通过实践才能将知//识掌握牢固

循环语句

  循环体也支持嵌套使用

while循环
#include <stdio.h>

int main()
{
	int x = 10; // 初始化
	while (x) // 判断
	{
		printf("%d ", x):
		x--; // 调整
	}
	// 可以看看 x , x--, --x, 打印有何区别
	// x, x++, ++x 类似
	// x++ 为后置 ++,是先使用, 再加加
	// ++x 为前置 ++,是先加加,在使用
	x = 10; // 初始化
	while (x--) // 判断 调整
	{
		printf("%d ", x):
	}
	
	x = 10; // 初始化
	while (--x) // 判断 调整
	{
		printf("%d ", x):
	}
	return 0;
}
for循环
#include <stdio.h>

int main()
{
	int x = 10; 
	// for 循环将初始化 判断 调整 放在了一起方便管理
	// 初始化只执行一次
	// 先判断 在进入,最后调整
	for (x = 0; x < 10; x++)
	{
		printf("%d ", x):
	}
	return 0;
}

注意:while 和 for 循环执行次数是 大于等于 0 次
判断次数始终比执行次数多 1 次
  下面的 do while 循环 执行次数 至少一次
判断次数与执行次数相同

do while 循环
#include <stdio.h>

int main()
{
	int x = 10; 
	do
	{
		printf("%d ", x):
		x--;
	}while(x); //可以试着像 while 循环那样,将x, x--, --x
	// 都试一下,看看有什么区别
	return 0;
}
  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值