22.1.15分支与循环语句

目录

分支语句

循环语句

goto 语句



C语言是结构化的程序语言

  1. 顺序结构
  2. 选择结构 if switch
  3. 循环结构 while for do-while

C语句:

  1. 表达式语句
  2. 函数调用语句
  3. 控制语句
  4. 复合语句
  5. 空语句

控制语句

  1. 条件判断语句(分支语句) if switch
  2. 循环执行语句 do while while for
  3. 转向语句 break goto continue return

分支语句

if语句

语法结构:

if(表达式) 表达式结果为真执行语句

语句

if(表达式)

语句1;

else

语句2;

//多分支

if(表达式1)

语句1;

else if(表达式2)

语句2;

else

语句3;

例子

#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
    	printf("青少年\n");
		printf("好好学习\n");
	}
	else if (age >= 18 && age < 30)
{ 
		printf("青年\n");
	}
	else if (age >= 30 && age < 50)
{
	printf("中年\n");
	}
	else if (age >= 50 && age < 80)
	{
		printf("中老年\n");
}
	else if (age >= 80 && age < 100)
	{
	printf("老年\n");
	}
	else
	{
	printf("老寿星\n");
	}
	return 0;
}

注意:

默认只跟一条语句,如果多条语句要用大括号

0为假,非0为真

一对大括号{}就是一个代码块

悬空else

//haha hehe
#include <stdio.h>

int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
	{

		if (b == 2)

			printf("hehe\n");

		else

			printf("haha\n");

	}

	return 0;

}

else总是和离它最近的if匹配

if和else合起来叫一条语句

把常量放在等号的左边(更容易找到错误

#inculde<stdio.h>
int main()
{
	int num = 1;
if (5 == num)
	printf("hehe\n");

	return 0;

输出1-100的奇数

//%2==1

//if(n%2!=0)

int main()
{
    int i = 1;
    while(i <= 100)
    {
        printf("%d ",i);
        i=i+2;
    }
}

switch 语句

switch(整型表达式)

{

语句项 ;

}

搭配break使用才能实现真正的分支

语句块就是一些case语句

case 整型常量表达式:

语句;

case后打印内容重复一致时可以省略。

int main()
{
    int day = 0;
    scanf("%d",&day);
    switch(day)
    {
        case 1:
        case 2:
        case 3:
       case 4:
        case 5:
        printf("工作日\n");
        break;
        case 6:
        case 7:
        printf("休息日\n");
        break;
        default:
        printf("输入错误\n");
        break;
    }
}

如果所有的case都不能匹配就用default:(没有顺序要求,放哪里都可以,一般放最后)

后也要加break

switch允许嵌套

嵌套的break只能跳出嵌套的switch语句

循环语句

while循环

语法结构

while(表达式)

循环结构;

//在屏幕上打印1-10
#include<stdio.h>
int main()
{
    int i =1;
    while(i<=10)
    {
        printf("%d ",i);
        i =i++;
}
return 0;
}

提前永久终止整个循环break

跳过本次循环continue后面的代码,直接返回到表达式部分判断要不要进行下一次循环

1.

getchar读取字符 返回类型是int

putchar打印字符

int main()
{char password[20] = {0};
print("请输入密码");
sacnf("%s",password);

//1
//getchar();//处理\n

//2
int tmp=0;
while ((tmp = getchar())!='/n')
{
    ;
}
printf("请确认密码(y/n)");
int ch = getchar();
if('y' == ch)
printf("确认成功\n");
else
printf("确认失败\n");

return 0;
}

代码意义:缓冲区清理

scanf 读取

getchar 缓冲区 键盘

2.读取字符只打印数字字符

#include<stdio.h>
int main()
{
    int ch = '\0';
    while ((ch = getchar())!=EOF)
    {
        if (ch < '0' || ch > '9')//非数字字符
        continue;
        putchar(ch);
        
    }
    return 0;
}

for循环

while中 初始化 判断 调整 三部分非常重要而且是分离的,其中一个部分只要发生变化,循环就会不一样。

//while
int main()
{
	int i = 1;//初始化
	while (i <= 10)//判断
	{
	printf("%d ", i);
		i++;//调整
	}
	return 0;
}

for(表达式1;表达式2;表达式3)

            初始化      判断       调整

//for
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if (5 == i)
			continue;

		printf("%d ", i);
   	}

	return 0;
}

表达式2为时整个循环终止

break整个循环终止

continue跳过本次循环后的代码,后面继续循环

for语句的循环控制变量

建议

1.不可在for循环体内修改循环变量,防止for循环失去控制(在括号里修改)

2.建议for语句的循环控制变量的取值采用“前闭后开区间”的写法(一般情况)

[0,10)

一些for循环的变种

for循环中三部分都可省略但;不能省略

for循环的判断部分省略了,意味判断恒为真

可以使用一个多余变量控制循环

int main()
{int x,y;
for (x = 0, y = 0; x < 2 && y < 5; ++x,y++)
{
    printf("haha\n");
    
}
return 0;
}

do...while循环

do

循环语句;

while(表达式);

int main() 
{ int i=1; 
do 
{ if(i==5) 

continue;//打印结果1 2 3 4 死循环
 
printf("%d ",i); 

i++; }while(i<=10); 

return 0; }

循环至少执行一次,应用场景有限

break跳出整个循环,永久终止

continue跳过本次后面的代码

goto 语句

int main()
 { 
again: 
printf("haha\n"); 
goto again; 
return 0;
 }

传送,跳转 但是不能跨函数跳转

可以随意滥用,但是没必要

用途:

终止程序在某些深度嵌套的结构处理过程

(一次跳出两次或多次循环)

for(...) 
for(...) 
{ for(...)
 { if(disaster) 
goto error;
 }
 } 
... 
error: 
if(disaster) //处理错误情况

### 使用 nvm 安装 Node.js 版本 22.1 为了在 Linux Mint 22.1 上通过 `nvm` (Node Version Manager) 安装指定版本的 Node.js(如版本 22.1),可以按照以下方法操作: #### 准备工作 确保系统已安装必要的依赖项,例如 `curl` 或 `wget` 工具。如果尚未安装这些工具,可以通过运行以下命令来安装它们: ```bash sudo apt update && sudo apt install curl wget -y ``` #### 下载并安装 nvm 执行以下命令下载最新的稳定版 `nvm` 并将其安装到本地环境中: ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash ``` 或者使用 `wget` 替代: ```bash wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash ``` 上述命令会自动将 `nvm` 添加到用户的 shell 配置文件中。 重新加载当前终端配置以使更改生效: ```bash source ~/.bashrc ``` #### 列出可用的 Node.js 版本 运行以下命令查看所有可安装的 Node.js 版本列表: ```bash nvm ls-remote ``` 这一步可以帮助确认目标版本号是否存在以及其具体名称。 #### 安装特定版本的 Node.js 一旦找到所需的版本编号(此处假设为 v22.1.x),即可运行如下命令进行安装: ```bash nvm install 22.1 ``` 此命令将会下载对应版本的 Node.js 及其配套的 npm,并设置它作为默认使用的版本[^1]。 #### 设置默认版本 如果希望每次打开新终端时都使用该版本,则需额外设定一次默认版本: ```bash nvm use 22.1 nvm alias default 22.1 ``` 验证安装成功否可通过检查当前正在运行的 Node.js 和 npm 的版本信息实现: ```bash node --version npm --version ``` 以上步骤完成后即完成了基于 nvm 对 Node.js 22.1 的安装过程。 #### 关于包管理器的选择补充说明 值得注意的是,在某些场景下除了原生支持的 npm 外还可以考虑采用 Yarn 来替代传统的 package.json 文件解析逻辑;因为后者允许每个独立项目定义自己专属的一套依赖关系而无需借助外部全局变量控制机制就能轻松达成跨平台一致性的效果[^2]。
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hey pear!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值