当前位置: 首页 > news >正文

详解C语言分支与循环语句

分支语句

  • if else
  • switch

循环语句

  • while
  • for
  • do while

goto语句

文章目录

  • 1.什么是语句
  • 2.分支语句(选择结构)
  • 2.1 if语句
      • 2.1.1 悬空else
      • 2.1.3 练习
  • 2.2 switch语句
      • 2.2.1 在switch语句中的break
      • 2.2.2 default子句
  • 3.循环语句
    • 3.1 while循环
      • 3.1.1 while语句中的break和continue
    • 3.2 for循环
      • 3.2.1 语法
      • 3.2.2 break和continue在for循环中
      • 3.2.3 for语句的循环控制变量
      • 3.2.4 一些for循环的变种
      • 3.2.5 试题
    • 3.3 do...while()循环
      • 3.3.1 do...while()循环语法
      • 3.3.2 执行流程
      • 3.3.3 do语句的特点
      • 3.3.4 do while 循环中的break和continue
    • 3.4 习题
      • 3.4.3 猜数字游戏
  • 4.goto语句

1.什么是语句

在C语言当中语句可以分为以下5类:

  • 表达式语句
  • 函数调用语句
  • 控制语句
  • 复合语句
  • 空语句
    控制语句 用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句符号符组成,C语言有9种控制语句:

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

2.分支语句(选择结构)

这样吧,你先在steam搜索“千恋*万花”点击购买安装好后立即运行打开千恋万花,在主页面点击开始游戏进入游戏页面,然后依次选择“说实话”、“不好说”、“觉得很可爱”、“单独行动”、“摸摸头”、“有点担心”和“安抚”进入丛雨路线
没错,galgame中的选项就是选择语句。
分支语句

达成对应的条件后就进入对应的结果。

2.1 if语句

if语句的语法结构

//单分支
if(exp1)语句;
//双分支
if(exp1)语句1;
else语句2;//多分支
if(exp1)语句1;
else if(exp2)语句2;
else语句3;

实例演示:

//代码1
#include <stdio.h>
int main()
{int age = 0;scanf("%d",&age);if(age<18){printf("未成年\n");}else{printf("已成年\n");}return 0;
}//代码2
#include <stdio.h>
int main()
{int age = 0;scanf("%d",&age);if(age<18){printf("青少年\n");}else if(age>=18&&age<30){printf("青年\n");}else if(age>=30&&age<60){printf("中年\n");}else if(age>=60&&age<80){printf("老年\n");}else{printf("寿星\n");}return 0;
}

在C语言中0表示假,非0表示真
值得注意的是:If只能管理后面一条语句,所有我们要多用{}进行匹配,防止使人误解.
{}就是一个代码块。

2.1.1 悬空else

看下面这个代码:

#include <stdio.h>
int main()
{int a = 0;if(a)if(a==0)printf("hello\n");elseprintf("hi\n");return 0;
}

你觉得会打印什么呢?
答案是:什么都不打印,这里的else是和第二个if进行匹配的。
为了避免这种情况,我们要让代码好好对齐或者加入{}来避免误解


//代码对齐
#include <stdio.h>
int main()
{int a = 0;if(a)if(a==0)printf("hello\n");elseprintf("hi\n");return 0;
}//利用{}
#include <stdio.h>
int main()
{int a = 0;if(a){if(a==0)printf("hello\n");elseprintf("hi\n");}return 0;
}

else的匹配:else是和离他最近的if匹配的

2.1.3 练习

1.判断一个数是否是奇数。
2.输出1~100之间的奇数。

//1.判断一个数是否是奇数。
#include <stdio.h>
int main()
{int a = 0;scanf("%d",&a);if(a%2==1){printf("是奇数!\n");}else{printf("不是奇数!\n");}return 0;
}//2.2.输出1~100之间的奇数。
#include <stdio.h>
int main()
{//利用while循环int i = 1;while(i<=100){if(i%2==1){printf("%d ",i);}++i;}return 0;
}//方法2
#include <stdio.h>
int main()
{//利用while循环int i = 1;while(i<=100){printf("%d ",i);i+=2;}return 0;
}

2.2 switch语句

switch语句也是一种分支语句,常常用于多分支的情况。

switch(整型表达式)
{case 整型常量表达式://case是整型常量表达式 也可以是char 因为底层为ASCII码也算语句;
}

比如,让你根据数字输出对应的星期。

#include <stdio.h>
int main()
{int day = 0;scanf("%d",&day);switch(day){case 1:printf("星期一\n");case 2:printf("星期二\n");case 3:printf("星期三\n");case 4:printf("星期四\n");case 5:printf("星期五\n");case 6:printf("星期六\n");case 7:printf("星期日\n");}return 0;
}//当我们输入5时
/*
打印结果:
星期五
星期六
星期日
*/

这是为什么呢?因为在switch中我们只有利用了break才能实现真正的分支。

2.2.1 在switch语句中的break

#include <stdio.h>
int main()
{int day = 0;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;}return 0;
}
//当我们输入5时
/*
打印结果:
星期五
*/

break语句的实际效果是把语句列表划分为不同的分支部分。
思考:如果有人在这个程序运行时输入8会怎么样?

2.2.2 default子句

答案:当输入的值与所有case都不匹配时,就直接退出switch,然后继续程序。
但是如果你不想要忽略不匹配这种情况。
你可以在语句列表中增加一个default子句。
可以写在任何一个case标签可以出现的位置,switch里面的判断可以没有顺序。

#include <stdio.h>
int main()
{int day = 0;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;default:printf("输入错误!\n");break;//建议加上	}return 0;
}

switch允许嵌套使用。

3.循环语句

  • while
  • for
  • do while
    简单的循环结构

简单的循环语句

3.1 while循环

while(条件)语句;

当条件满足时,循环就会执行下去。
while语句执行流程:
while语句的执行流程

打印1-10数字

#include <stdio.h>
int main()
{//利用while循环int i = 1;while(i<=10){printf("%d ",i);i++;}return 0;
}
//打印结果
//1 2 3 4 5 6 7 8 9 10

3.1.1 while语句中的break和continue

break介绍
在循环中只要执行了break,就会直接终止循环,直接跳出循环体。

#include <stdio.h>
int main()
{//利用while循环int i = 1;while(i<=10){if(i==5)break;printf("%d ",i);i++;}return 0;
}
//打印结果
//1 2 3 4 

continue介绍

continue是用来终止本次循环的,也就是本次循环中continue后面的代码不会执行,
而是直接跳转到while语句的判断部分。进入下一次循环。

//代码1
#include <stdio.h>
int main()
{//利用while循环int i = 1;while(i<=10){if(i==5)continue;printf("%d ",i);i++;}return 0;
}
//打印结果
//1 2 3 4 4 4 4 4 4 4 4....//代码2
#include <stdio.h>
int main()
{//利用while循环int i = 1;while(i<=10){i++;if(i==5)continue;printf("%d ",i);}return 0;
}
//打印结果
//2 3 4 6 7 8 9 10

3.2 for循环

了解完while循环后,for可以说是while的整合。

3.2.1 语法

for(expr1;expr2;expr3)循环语句;

exp1
为初始化部分,用来初始化循环变量的。
exp2
为条件判断部分,用于判断循环终止的
exp3
为调整部分,用于循环条件的调整。

打印1-10

//代码1
#include <stdio.h>
int main()
{int i = 0;for(i = 1;i<=10;++i){printf("%d ",i);}return 0;
}
//打印结果:1 2 3 4 5 6 7 8 9 10//代码2
#include <stdio.h>
int main()
{for(int i = 1;i<=10;++i)//在里面初始化是c++里的写法,但在c99标准后引入{printf("%d ",i);}return 0;
}
//打印结果:1 2 3 4 5 6 7 8 9 10

for执行流程图
for语句的执行流程

for与while循环的对比

#include <stdio.h>
int main()
{int i = 0;while(i<=10){printf("%d ",i);++i;}for(i = 1;i<=10;++i){printf("%d ",i);}return 0;
}

循环的3个必要条件,无论是while循环还是for都是有的,但是while的三部分比较分散。
查找修改就不够集中于方便,对此,for循环的风格更胜一筹。

3.2.2 break和continue在for循环中

可以发现的是,在for和在while循环里面是没有特别大区别的,但由于for独特的执行调整步骤和while还是略有差异

//continue在while
#include <stdio.h>
int main()
{//利用while循环int i = 1;while(i<=10){if(i==5)continue;printf("%d ",i);i++;}return 0;
}
//打印结果
//1 2 3 4 4 4 4 4 4 4 4....//continue在for循环
#include <stdio.h>
int main()
{//利用for循环int i = 1;for(i = 1;i<=10;++i){if(i==5)continue;printf("%d ",i);}return 0;
}
//打印结果
//1 2 3 4 6 7 8 9 10

for循环里的continue在跳过本次循环时,是无法跳过for()中的调整语句的。

3.2.3 for语句的循环控制变量

建议(不是必须):

1.不要在for循环体内修改循环变量,防止for循环失去控制
2.建议for语句的循环变量的取值采用 前闭后开区间的写法

int i = 0;
//前闭后开
for(i = 0;i<10;++i)
{}
//前闭后闭
for(i = 0;i<=9;++i)
{}

3.2.4 一些for循环的变种

#include <stdio.h>
int main()
{//利用for循环int i = 1;for(;;)//for省略判断即为判断恒为真{printf("hello\n");}//代码2int i = 0;int j = 0;//打印多少个hello呢?for(i = 0;i<10;++i){for(j = 0;j<10;++j){printf("hello\n");}}//100个//代码3int i = 0;int j = 0;//打印多少个hello呢?for(;i<10;++i){for(;j<10;++j){printf("hello\n");}}//10个//代码4 int x,y;for(x = 0,y = 0;x<2&&y<5;++x,++y)//使用多个变量控制循环{printf("hello\n");}return 0;
}
//打印结果
//hello hello hello...

3.2.5 试题

//循环多少次
#include <stdio.h>
int main()
{int i = 0;int k = 0;for(i = 0,k = 0;k=0;++i,++k)k++;return 0;
}//0次

3.3 do…while()循环

3.3.1 do…while()循环语法

do
{循环语句;
}while(表达式);

3.3.2 执行流程

do while的执行流程

3.3.3 do语句的特点

循环至少执行一次,使用场景有限,不常使用。

打印1-10

#include <stdio.h>
int main()
{int i = 1;do{printf("%d ",i);++i;}while(i<=10);return 0;
}
// 打印结果:
//1 2 3 4 5 6 7 8 9 10

3.3.4 do while 循环中的break和continue

//代码1
#include <stdio.h>
int main()
{int i = 10;do{if(i == 5)break;printf("%d ",i);}while(i<10);return 0;
}//代码2
#include <stdio.h>
int main()
{int i = 10;do{if(i == 5)continue;printf("%d ",i);}while(i<10);return 0;
}

3.4 习题

1.计算n的阶乘
2.计算1!+2!+…+10!
3.在一个有序数组中查找具体某个数n
4.编写代码,演示多个字符从两端移动,向中间汇聚。

//1.
#include <stdio.h>
int main()
{int n = 0;scanf("%d",&n);int ret = 1;for(int i = 1;i<=n){ret*=i;}printf("%d\n",ret);return 0;
}//2.1
#include <stdio.h>
int main()
{int sum = 0;for(int n = 1;n<=10;++n){int ret = 1;for(int i = 1;i<=n;++i){ret*=i;}sum+=ret;}printf("%d\n",sum);return 0;
} //2.2
#include <stdio.h>
int main()
{int sum = 0;int ret = 1;for(int n = 1;n<=10;++n){ret *= n;sum+=ret;}printf("%d\n",sum);return 0;
}//3.1
#include <stdio.h>
int main()
{int arr[10] = {1,2,3,4,5,6,7,8,9,10};int x = 0;scanf("%d",&x);for(int i = 0;i<10;++i){if(x==arr[i]){printf("找到了,下标为%d\n",i);break;}}if(i==10){printf("没找到!\n");}return 0;
}
//3.2二分查找
#include <stdio.h>
int main()
{int arr[10] = {1,2,3,4,5,6,7,8,9,10};int x = 0;scanf("%d",&x);int left = 0,right = 9;int flag = 0;while(left<=right){int mid = (left+right)/2;if(arr[mid]==x){printf("找到了,下标为%d\n",mid);flag = 1;break;}else if(arr[mid]<x){left = mid+1;}else{right = mid-1;}}if(flag == 0){printf("找不到!\n");}return 0;
}//4
#include <stdio.h>
int main()
{char arr1[] = "hello world!";char arr2[] = "************";int n = sizeof(arr1);int left = 0;int right = n - 1;for (left = 0, right = n - 1; left <= right; ++left, --right){arr2[left] = arr1[left];arr2[right] = arr1[right];printf("%s\n", arr2);}return 0;
}

3.4.3 猜数字游戏

学以上的内容,我们可以写一个简单的猜谜游戏

#include <stdio.h>
#include <stdlib.h>//srand和rand的头文件
#include <time.h>//time的头文件
void menu()
{printf("**********************\n");printf("*****1.paly***********\n");printf("*****0.exit***********\n");printf("**********************\n");
}
void game()
{int r = rand() % 100 + 1;//rand可以产生随机数,但因为rand的随机数是根据srand所提供的种子生成,所以我们还要使用srand,但是由由于srand所提供的种子也要输入数字才可以生成,为此我在使用了time函数生成当前时间的时间戳数来充当输入的数字,以达到rand生成随机数的效果。int guess = 0;//玩家要猜测的数printf("游戏开始\n");while (1)//直到猜中{scanf("%d", &guess);if (guess < r){printf("猜小了\n");}else if (guess > r){printf("猜大了\n");}else{printf("恭喜你,猜中了!\n");break;}}
}
int main()
{int input = 0;srand((unsigned)time(NULL));do//进入循环{menu();//打印菜单printf("请选择_>");//提示信息scanf("%d", &input);//根据提示选择进入还是退出//根据输入进入相应区域,用到多分支语句switchswitch (input){case 1:game();//进入游戏break;case 0:printf("已退出游戏!\n");break;default:printf("输入错误!\n");break;}} while (input);}

4.goto语句

C语言中提供了可以随意滥用的goto语句和标记跳转的标号。
从理论上来讲goto语句是没有必要的,实际中没有goto语句也可以很容易的写成代码。
但是在某些场合下goto语句还是用的着的,最常见的用法就是终止某些深层嵌套的结构。
例如一次性跳出多层循环。
多重循环下使用break是达不到目的的,break只能从最内层循环退出到上一层循环。

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

大部分部分使用goto的情况是可以利用循环代替的。

//代码1
#include <stdio.h>
int main()
{
again://...if(...){//...break;}else{goto again;}return 0;
}//代码2
#include <stdio.h>
int main()
{while(1){if(...){//...break;}}return 0;
}

相关文章:

详解C语言分支与循环语句

分支语句 if elseswitch 循环语句 whilefordo while goto语句 文章目录 1.什么是语句2.分支语句&#xff08;选择结构&#xff09;2.1 if语句2.1.1 悬空else2.1.3 练习 2.2 switch语句2.2.1 在switch语句中的break2.2.2 default子句 3.循环语句3.1 while循环3.1.1 while语句中…...

Python商务数据分析知识专栏(五)——Python数据分析的应用③使用Pandas进行数据预处理

Python商务数据分析知识专栏&#xff08;五&#xff09;——Python数据分析的应用③使用Pandas进行数据预处理 使用Pandas进行数据预处理1.合并数据2.清洗数据3.标准化数据4.转换数据 使用Pandas进行数据预处理 1.合并数据 2.清洗数据 3.标准化数据 4.转换数据...

Nosql期末复习

mongodb基本常用命令&#xff08;只要掌握所有实验内容就没问题&#xff09; 上机必考&#xff0c;笔试试卷可能考&#xff1a; 1.1 数据库的操作 1.1.1 选择和创建数据库 &#xff08;1&#xff09;use dbname 如果数据库不存在则自动创建&#xff0c;例如&#xff0c;以下…...

Pytest+Allure+Yaml+PyMsql+Jenkins+Gitlab接口自动化(四)Jenkins配置

一、背景 Jenkins&#xff08;本地宿主机搭建&#xff09; 拉取GitLab(服务器)代码到在Jenkins工作空间本地运行并生成Allure测试报告 二、框架改动点 框架主运行程序需要先注释掉运行代码&#xff08;可不改&#xff0c;如果运行报allure找不到就直接注释掉&#xff09; …...

SQL面试题练习 —— 查询前2大和前2小用户并有序拼接

目录 1 题目2 建表语句3 题解 1 题目 有用户账户表&#xff0c;包含年份&#xff0c;用户id和值,请按照年份分组&#xff0c;取出值前两小和前两大对应的用户id&#xff0c;需要保持值最小和最大的用户id排首位。 样例数据 ------------------------- | year | user_id | v…...

Arthas常见使用姿势

文章目录 Arthas常见使用姿势官网基本命令通用参数解释表达式核心变量说明常用命令一些常用特殊案例举例其他技巧关于OGNLOGNL的常见使用OGNL的一些特殊用法与说明OGNL内置的虚拟属性OGNL的个人思考OGNL的杂碎&#xff0c;收集未做验证 Arthas常见使用姿势 官网 https://arth…...

Apache Kylin的入门学习

Apache Kylin的入门学习可以从以下几个方面进行&#xff1a; 1. 了解Kylin的基本概念 定义&#xff1a;Apache Kylin是一个开源的分布式分析引擎&#xff0c;它基于Hadoop和HBase构建&#xff0c;提供Hadoop/Spark之上的SQL查询接口及多维分析&#xff08;OLAP&#xff09;能…...

React@16.x(46)路由v5.x(11)源码(3)- 实现 Router

目录 1&#xff0c;Router 的结构2&#xff0c;实现2.1&#xff0c;react-router1&#xff0c;matchPath.js2&#xff0c;Router.js3&#xff0c;RouterContext.jsx4&#xff0c;index.jsx 2.2&#xff0c;react-router-domBrowserRouter.jsxindex.jsx 1&#xff0c;Router 的结…...

openGauss真的比PostgreSQL差了10年?

前不久写了MogDB针对PostgreSQL的兼容性文章&#xff0c;我在文中提到针对PostgreSQL而言&#xff0c;MogDB兼容性还是不错的&#xff0c;其中也给出了其中一个能源客户之前POC的迁移报告数据。 But很快我发现总有人回留言喷我&#xff0c;而且我发现每次喷的这帮人是根本不看文…...

【国产开源可视化引擎Meta2d.js】快速上手

提示 初始化引擎后&#xff0c;会生成一个 meta2d 全局对象&#xff0c;可直接使用。 调用meta2d前&#xff0c;需要确保meta2d所在的父容器element元素位置大小已经渲染完成。如果样式或css&#xff08;特别是css动画&#xff09;没有初始化完成&#xff0c;可能会报错&…...

c#与倍福Plc通信

bcdedit /set hypervisorlaunchtype off...

【OceanBase诊断调优】—— 如何通过trace_id找到对应的执行节点IP

1. 前言 OceanBase作为分布式数据库&#xff0c;查问题找对节点很关键。好在OceanBase执行的每一条SQL都能通过trace_id来关联起来&#xff0c;知道trace_id怎么知道是在哪个节点发起的呢&#xff0c;请看本文。 2. trace_id生成规则 ob内部trace_id的生成函数如下&#xff0…...

鸿蒙开发Ability Kit(程序访问控制):【使用粘贴控件】

使用粘贴控件 粘贴控件是一种特殊的系统安全控件&#xff0c;它允许应用在用户的授权下无提示地读取剪贴板数据。 在应用集成粘贴控件后&#xff0c;用户点击该控件&#xff0c;应用读取剪贴板数据时不会弹窗提示。可以用于任何应用需要读取剪贴板的场景&#xff0c;避免弹窗…...

PL/SQL入门到实践

一、什么是PL/SQL PL/SQL是Procedural Language/Structured Query Language的缩写。PL/SQL是一种过程化编程语言&#xff0c;运行于服务器端的编程语言。PL/SQL是对SQL语言的扩展。PL/SQL结合了SQL语句和过程性编程语言的特性&#xff0c;可以用于编写存储过程、触发器、函数等…...

双非本 985 硕,我马上要入职上海AI实验室大模型算法岗

暑期实习基本结束了&#xff0c;校招即将开启。 不同以往的是&#xff0c;当前职场环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;HC 在变少&#xff0c;岗位要求还更高了。 最近&#xff0c;我们又陆续整理了很多大厂的面试题&#xff0c;帮助一些球友解惑答疑&…...

C盘清理和管理

本篇是C盘一些常用的管理方法&#xff0c;以及定期清理C盘的方法&#xff0c;大部分情况下都能避免C盘爆红。 C盘清理和管理 C盘存储管理查看存储情况清理存储存储感知清理临时文件清理不需要的 迁移存储 磁盘清理桌面存储管理应用存储管理浏览器微信 工具清理 C盘存储管理 查…...

晚上睡觉要不要关路由器?一语中的

前言 前几天小白去了一个朋友家&#xff0c;有朋友说&#xff1a;路由器不关机的话会影响睡眠吗&#xff1f; 这个影响睡眠嘛&#xff0c;确实是会的。毕竟一时冲浪一时爽&#xff0c;一直冲浪一直爽……刷剧刷抖音刷到根本停不下来&#xff0c;肯定影响睡眠。 所以晚上睡觉要…...

ardupilot开发 --- 坐标变换 篇

Good Morning, and in case I dont see you, good afternoon, good evening, and good night! 0. 一些概念1. 坐标系的旋转1.1 轴角法1.2 四元素1.3 基于欧拉角的旋转矩阵1.3.1 单轴旋转矩阵1.3.2 多轴旋转矩阵1.3.3 其他 2. 齐次变换矩阵3. visp实践 0. 一些概念 相关概念&am…...

git clone 别人项目后正确的修改和同步操作

简介 git clone主要是克隆别人的开源项目。但更高端的操作是实现本地修改的同时&#xff0c;能同步别人的在线修改&#xff0c;并且不相互干扰&#xff1a; 克隆原始项目&#xff1a;从远程仓库克隆项目到本地。添加上游仓库&#xff1a;将原始项目的远程仓库添加为上游仓库。…...

JAVA连接FastGPT实现流式请求SSE效果

FastGPT 是一个基于 LLM 大语言模型的知识库问答系统&#xff0c;提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排&#xff0c;从而实现复杂的问答场景&#xff01; 一、先看效果 真正实流式请求&#xff0c;SSE效果&#xff0c;SSE解释&am…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

【Veristand】Veristand环境安装教程-Linux RT / Windows

首先声明&#xff0c;此教程是针对Simulink编译模型并导入Veristand中编写的&#xff0c;同时需要注意的是老用户编译可能用的是Veristand Model Framework&#xff0c;那个是历史版本&#xff0c;且NI不会再维护&#xff0c;新版本编译支持为VeriStand Model Generation Suppo…...

Java后端检查空条件查询

通过抛出运行异常&#xff1a;throw new RuntimeException("请输入查询条件&#xff01;");BranchWarehouseServiceImpl.java // 查询试剂交易&#xff08;入库/出库&#xff09;记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...

聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇

根据 QYResearch 发布的市场报告显示&#xff0c;全球市场规模预计在 2031 年达到 9848 万美元&#xff0c;2025 - 2031 年期间年复合增长率&#xff08;CAGR&#xff09;为 3.7%。在竞争格局上&#xff0c;市场集中度较高&#xff0c;2024 年全球前十强厂商占据约 74.0% 的市场…...

【若依】框架项目部署笔记

参考【SpringBoot】【Vue】项目部署_no main manifest attribute, in springboot-0.0.1-sn-CSDN博客 多一个redis安装 准备工作&#xff1a; 压缩包下载&#xff1a;http://download.redis.io/releases 1. 上传压缩包&#xff0c;并进入压缩包所在目录&#xff0c;解压到目标…...

多模态大语言模型arxiv论文略读(110)

CoVLA: Comprehensive Vision-Language-Action Dataset for Autonomous Driving ➡️ 论文标题&#xff1a;CoVLA: Comprehensive Vision-Language-Action Dataset for Autonomous Driving ➡️ 论文作者&#xff1a;Hidehisa Arai, Keita Miwa, Kento Sasaki, Yu Yamaguchi, …...