【重学C语言】五、分支结构

【重学C语言】五、分支结构

  • 三种结构
  • 分支结构
    • `if` 语句
      • 示例 1:基本的 if 语句
    • `if...else` 语句
      • 示例 2:if...else 语句
    • 嵌套 `if`
      • 示例 3:嵌套的 if 语句
    • `if` 语句与逻辑运算符
      • 示例 4:使用逻辑与(&&)
      • 示例 5:使用逻辑或(||)
      • 示例 6:使用逻辑非(!)
      • 示例 7:组合使用逻辑运算符
    • `if` 语句与关系运算符
      • 示例 8:比较两个整数
      • 示例 9:检查字符串是否相等
      • 示例 10:检查变量是否在特定范围内
      • 示例 11:检查用户输入
    • `if ... else` 注意事项
    • `switch` 语句
      • 示例 12:使用 `switch` 语句
    • `switch` 注意事项
  • `if` 和 `switch` 语句的应用
    • `if` 语句的应用
    • `switch` 语句的应用

三种结构

C语言中的三种基本结构是指顺序结构、选择结构(分支结构)和循环结构。这三种结构是构成C语言程序的基本框架,它们能够组合起来实现复杂的逻辑和算法。

  1. 顺序结构:
    顺序结构是程序中最基本的结构,它按照代码的顺序逐行执行。在顺序结构中,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。

例如:

#include <stdio.h>int main() {printf("Hello, ");printf("World!\n");return 0;
}

上面的程序就是按照顺序结构执行的,先输出"Hello, “,然后输出"World!”。

  1. 选择结构(分支结构):
    选择结构是根据条件判断的结果来选择执行不同的代码块。C语言提供了if、if...else、switch等关键字来实现选择结构。

例如,使用if...else实现的选择结构:

#include <stdio.h>int main() {int num = 5;if (num > 0) {printf("Number is positive.\n");} else {printf("Number is non-positive.\n");}return 0;
}
  1. 循环结构:
    循环结构是指程序中需要反复执行某段代码的结构。C语言提供了for、while、do...while等关键字来实现循环结构。

例如,使用for循环打印1到5的整数:

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

这三种结构可以单独使用,也可以组合起来使用,以构建更复杂的程序逻辑。在实际的编程中,程序员会根据需要灵活运用这三种结构来实现特定的功能。

分支结构

分支结构(也称为选择结构或条件结构)是程序设计中用于根据特定条件选择不同的执行路径的一种结构。在C语言中,分支结构主要由if语句、if...else语句、switch语句等来实现。

if 语句

if 语句用于在满足某个条件时执行一段代码。其基本语法如下:

if (condition) {// 代码块,当 condition 为真时执行
}

如果 condition 为真(非零),则执行 if 语句后面的代码块。

示例 1:基本的 if 语句

#include <stdio.h>int main() {int a = 5;if (a > 0) {printf("a is positive.\n");}return 0;
}

在这个例子中,我们检查变量 a 是否大于 0。如果是,就打印出 “a is positive.”。

if...else 语句

if...else 语句用于在满足某个条件时执行一段代码,否则执行另一段代码。其基本语法如下:

if (condition) {// 当 condition 为真时执行的代码块
} else {// 当 condition 为假时执行的代码块
}

示例 2:if…else 语句

#include <stdio.h>int main() {int b = -3;if (b > 0) {printf("b is positive.\n");} else {printf("b is non-positive.\n");}return 0;
}

在这个例子中,我们检查变量 b 是否大于 0。如果是,我们打印 “b is positive.”;如果不是(即 b 小于或等于 0),我们打印 “b is non-positive.”。

嵌套 if

嵌套 if 语句是 if 语句的一种扩展形式,其中 if 语句或 if...else 语句可以作为另一个 if 或 if...else 语句的一部分。这种结构允许我们在一个条件的基础上进一步细分决策流程,根据多个条件执行不同的代码块。

嵌套 if 语句的基本语法如下:

if (condition1) {// 当 condition1 为真时执行的代码块if (condition2) {// 当 condition1 和 condition2 都为真时执行的代码块} else {// 当 condition1 为真但 condition2 为假时执行的代码块}
} else {// 当 condition1 为假时执行的代码块
}

在这个例子中,condition2 的检查仅在 condition1 为真时执行。如果 condition1 为假,那么不会检查 condition2,而是直接执行与 else 关联的代码块。

嵌套 if 语句可以多层嵌套,每一层都根据前一个 if 语句的结果来决定是否执行。然而,过度使用嵌套 if 语句可能导致代码难以理解和维护。因此,在编写嵌套 if 语句时,最好保持结构清晰,并使用适当的缩进和注释来增强代码的可读性。

示例 3:嵌套的 if 语句

#include <stdio.h>int main() {int c = 10;int d = 5;if (c > 5) {printf("c is greater than 5.\n");if (d < 10) {printf("And d is less than 10.\n");}}return 0;
}

在这个例子中,我们首先检查变量 c 是否大于 5。如果是,我们打印 “c is greater than 5.”,然后进一步检查变量 d 是否小于 10。如果 d 也满足条件,我们打印 “And d is less than 10.”。

if 语句与逻辑运算符

在 C 语言中,if 语句经常与逻辑运算符一起使用,以便根据多个条件的组合来执行不同的代码块。逻辑运算符包括 &&(逻辑与)、||(逻辑或)和 !(逻辑非)。这些运算符可以帮助我们构建更复杂的条件表达式。

下面是一些使用 if 语句和逻辑运算符的 C 语言实例:

示例 4:使用逻辑与(&&)

#include <stdio.h>int main() {int a = 5;int b = 10;if (a > 0 && b > 0) {printf("Both a and b are positive.\n");} else {printf("Either a or b is not positive.\n");}return 0;
}

在这个例子中,只有当 a 和 b 都大于 0 时,才会执行 if 语句块中的代码。

示例 5:使用逻辑或(||)

#include <stdio.h>int main() {int x = -5;int y = 15;if (x > 0 || y > 0) {printf("At least one of x or y is positive.\n");} else {printf("Both x and y are non-positive.\n");}return 0;
}

在这个例子中,只要 x 或 y 中至少有一个大于 0,就会执行 if 语句块中的代码。

示例 6:使用逻辑非(!)

#include <stdio.h>int main() {int z = 0;if (!z) {printf("z is zero or false.\n");} else {printf("z is non-zero or true.\n");}return 0;
}

在这个例子中,!z 表示对 z 的逻辑非操作。因为 z 是 0(在 C 语言中,0 通常被视为假),所以 !z 的结果是真,因此会执行 if 语句块中的代码。

示例 7:组合使用逻辑运算符

#include <stdio.h>int main() {int m = 3;int n = 4;int o = 2;if ((m > 0 && n > 0) || o > 5) {printf("Either both m and n are positive, or o is greater than 5.\n");} else {printf("Neither both m and n are positive, nor o is greater than 5.\n");}return 0;
}

在这个例子中,我们组合使用了逻辑与和逻辑或。只有当 m 和 n 都大于 0,或者 o 大于 5 时,才会执行 if 语句块中的代码。

逻辑运算符允许我们构建复杂且灵活的条件表达式,从而根据多个条件的组合来控制程序的流程。在实际编程中,根据具体的需求,我们可以使用这些逻辑运算符来创建精确的条件判断。

if 语句与关系运算符

在C语言中,if语句经常与关系运算符一起使用,以根据两个或多个值之间的关系来决定执行哪一段代码。关系运算符用于比较两个操作数,并返回一个布尔值(真或假)。常见的关系运算符包括:==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于或等于)和<=(小于或等于)。

下面是一些使用if语句和关系运算符的C语言实例:

示例 8:比较两个整数

#include <stdio.h>int main() {int a = 10;int b = 20;if (a < b) {printf("a is less than b.\n");} else {printf("a is not less than b.\n");}return 0;
}

在这个例子中,我们比较了两个整数a和b。如果a小于b,则执行if语句块中的代码。

示例 9:检查字符串是否相等

#include <stdio.h>
#include <string.h>int main() {char str1[] = "Hello";char str2[] = "World";if (strcmp(str1, str2) != 0) {printf("str1 is not equal to str2.\n");} else {printf("str1 is equal to str2.\n");}return 0;
}

在这个例子中,我们使用strcmp函数来比较两个字符串str1和str2。如果它们不相等,strcmp会返回一个非零值,因此if语句的条件为真。

示例 10:检查变量是否在特定范围内

#include <stdio.h>int main() {int x = 5;if (x >= 0 && x <= 10) {printf("x is within the range of 0 to 10.\n");} else {printf("x is not within the range of 0 to 10.\n");}return 0;
}

在这个例子中,我们检查变量x是否在0到10的范围内。我们使用了逻辑与运算符&&来组合两个关系表达式。

示例 11:检查用户输入

#include <stdio.h>int main() {int age;printf("Enter your age: ");scanf("%d", &age);if (age >= 18) {printf("You are an adult.\n");} else {printf("You are not an adult.\n");}return 0;
}

在这个例子中,程序会提示用户输入年龄,并使用if语句和关系运算符来判断用户是否是成年人。

通过结合if语句和关系运算符,我们可以编写出能够根据特定条件执行不同操作的灵活程序。这种条件判断在编程中非常常见,特别是在需要根据用户输入或程序状态做出决策的情况下。

if ... else 注意事项

在使用 if ... else 语句时,有几个关键的注意事项需要牢记,以确保代码的正确性和可读性。以下是使用 if ... else 语句时的一些重要提示:

  1. 条件表达式的结果:
    if 语句后面的条件表达式必须返回一个布尔值(即 true 或 false)。在 C 语言中,任何非零值通常被视为 true,而零值被视为 false。但是,为了代码清晰,最好直接使用布尔表达式或比较运算的结果。

  2. 代码块:
    if 和 else 语句后面的代码块必须用花括号 {} 括起来,即使代码块只包含一条语句。这是一个良好的编程习惯,因为它可以提高代码的可读性,并避免潜在的错误。

  3. 嵌套使用:
    if ... else 语句可以嵌套使用,以处理更复杂的条件逻辑。但是,过度嵌套会使代码难以理解和维护。因此,应尽量避免深度嵌套,并考虑使用其他结构(如函数或 switch 语句)来简化逻辑。

  4. 可读性:
    为了提高代码的可读性,建议将条件表达式和 if ... else 语句块放在合适的缩进级别,并使用有意义的变量名和注释来解释复杂的逻辑。

  5. 避免空语句:
    不要在 if 或 else 后面直接跟分号(;),这会导致一个空语句被执行。这通常是一个错误,应该避免。

  6. 逻辑运算符的使用:
    在条件表达式中,可以使用逻辑运算符(如 &&、|| 和 !)来组合多个条件。但是,要注意逻辑运算符的优先级和结合性,必要时使用括号来明确优先级。

  7. else if 的使用:
    如果需要检查多个条件,并为每个条件执行不同的代码块,可以使用 else if。这可以避免深度嵌套的 if 语句,并使代码更加清晰。

  8. 避免魔法数字:
    在条件表达式中,避免直接使用硬编码的数字(称为“魔法数字”)。相反,应将这些数字定义为常量或变量,并为其赋予有意义的名称。

  9. 错误处理:
    当使用 if ... else 语句进行条件判断时,不要忘记考虑可能出现的错误情况,并为其编写适当的错误处理代码。

  10. 测试与调试:
    编写完包含 if ... else 语句的代码后,务必进行充分的测试和调试,以确保其按预期工作。特别要注意边界条件和异常情况。

遵循这些注意事项可以帮助你编写出健壮、可维护和易于理解的 if ... else 语句。

switch 语句

switch 语句用于基于不同的情况值来执行不同的代码块。其基本语法如下:

switch (variable) {case value1:// 当 variable 等于 value1 时执行的代码块break;case value2:// 当 variable 等于 value2 时执行的代码块break;// 可以有更多的 casedefault:// 当 variable 不等于任何 case 值时执行的代码块break;
}

在 switch 语句中,break 关键字用于终止 switch 语句的执行,跳出当前的 case 分支。如果没有 break,程序会继续执行下一个 case 分支,直到遇到 break 或者 switch 语句结束。
当然,下面是一个使用 switch 语句的 C 语言实例。switch 语句允许我们根据一个表达式的值来执行多个代码块中的一个。

示例 12:使用 switch 语句

#include <stdio.h>int main() {int day = 3; // 假设这是从用户输入或其他计算中得到的值switch (day) {case 1:printf("Monday\n");break;case 2:printf("Tuesday\n");break;case 3:printf("Wednesday\n");break;case 4:printf("Thursday\n");break;case 5:printf("Friday\n");break;case 6:printf("Saturday\n");break;case 7:printf("Sunday\n");break;default:printf("Invalid day\n");}return 0;
}

在这个例子中,我们根据变量 day 的值打印出相应的星期几。每个 case 标签后面跟着一个要匹配的值,如果 switch 表达式的结果与某个 case 标签匹配,就会执行那个 case 下的代码,直到遇到 break 语句或者 switch 语句的结束。如果没有 break 语句,程序会继续执行下一个 case 的代码,这通常被称为“case 穿透”(fall-through)。

default 标签是可选的,用于处理所有其他情况,即当 switch 表达式的值没有与任何 case 标签匹配时。在这个例子中,如果 day 的值不是 1 到 7 之间的任何一个数,就会执行 default 下的代码,打印 “Invalid day”。

注意:在实际编程中,为了代码的可读性和维护性,通常建议为每个 case 使用 break 语句,除非你确实需要利用 case 穿透的特性。

switch 注意事项

在使用 switch 语句时,有几点关键的注意事项需要牢记,以确保代码的正确性和可读性。以下是使用 switch 语句时的一些重要提示:

  1. case穿透:
    每个 case 后面都应该加上 break; 语句,以跳出 switch 语句。如果没有 break 语句,程序会继续执行下一个 case 中的代码块,这种情况称为“case穿透”,可能会导致逻辑错误或意外结果。为了避免这种情况,务必在每个 case 结尾添加 break 语句,除非有意使多个 case 执行相同的代码。

  2. case中的变量定义:
    在C89标准中,不允许在 case 中定义变量。但在C99标准中,这是允许的。不过,为了避免代码的可读性和维护性问题,建议在 switch 语句之前定义所有需要使用的变量。

  3. 不支持浮点数和字符串:
    switch 语句在C语言中只支持整型和字符型表达式,不支持浮点数或字符串类型。如果需要基于浮点数或字符串进行判断,应使用 if-else 语句或其他方法。

  4. default分支:
    即使程序不需要处理默认情况,也建议包含一个 default 分支,并在其中至少包含 break; 语句。这样做可以防止其他开发者误以为遗漏了 default 处理,并提供一个明确的代码结构。

  5. 代码块的使用:
    不管 case 分支中有多少条语句,都建议使用花括号 {} 将其括起来。这可以提高代码的可读性,并避免潜在的逻辑错误。

  6. case值的唯一性:
    虽然C语言不强制要求 case 的值唯一,但为了确保逻辑清晰,最好确保每个 case 的值都是唯一的。如果多个 case 有相同的值,它们将执行相同的代码块,这可能会导致逻辑上的混淆。

  7. 避免过多的case:
    虽然 switch 语句支持大量的 case 分支,但过多的 case 会使代码难以理解和维护。如果逻辑变得过于复杂,考虑使用其他结构(如查找表或函数指针数组)来简化代码。

  8. 测试与调试:
    编写完包含 switch 语句的代码后,务必进行充分的测试和调试,以确保其按预期工作。特别要注意边界条件和异常情况。

  9. case 和后面的常量一定要有空格

遵循这些注意事项可以帮助你编写出健壮、可维护和易于理解的 switch 语句。

if 和 switch 语句的应用

if 和 switch 语句在编程中都是用于基于特定条件执行不同代码块的控制结构。它们各自有不同的应用场景和优势,下面将详细讨论它们的应用:

if 语句的应用

if 语句主要用于根据一个或多个条件的评估结果来执行相应的代码块。其应用非常广泛,包括但不限于以下几种情况:

  1. 输入验证:检查用户输入是否满足特定条件,如是否为空、是否在有效范围内等。
if (input != NULL && input_length > 0 && input_length < MAX_LENGTH) {// 处理有效输入
} else {// 处理无效输入或错误
}
  1. 状态判断:根据对象的当前状态执行不同的操作,如判断一个游戏角色是否活着。
if (character.is_alive) {// 角色活着,执行相应操作
} else {// 角色死亡,执行不同操作
}
  1. 数值比较:比较两个数值的大小,根据比较结果执行不同操作。
int a = 10;
int b = 20;if (a < b) {printf("a is less than b.\n");
} else {printf("a is not less than b.\n");
}
  1. 复杂逻辑判断:组合多个条件使用逻辑运算符(如 &&、||)进行复杂逻辑判断。
if ((age >= 18 && age <= 65) && is_citizen) {// 成年人且是公民,执行某些操作
} else {// 不满足条件,执行其他操作
}

switch 语句的应用

switch 语句通常用于根据一个表达式的值来执行多个不同的代码块。它适用于有多个离散选项的情况,如菜单选择、状态机或对不同枚举值进行处理。

  1. 菜单系统:根据用户的选择执行不同的操作。
int choice = get_user_choice(); // 假设这个函数返回用户的选择(1, 2, 3 等)switch (choice) {case 1:// 执行选项 1 的操作break;case 2:// 执行选项 2 的操作break;case 3:// 执行选项 3 的操作break;default:// 处理无效选择break;
}
  1. 状态机:根据对象或系统的当前状态执行不同的行为。
enum State { IDLE, RUNNING, STOPPED };
enum State currentState = get_current_state();switch (currentState) {case IDLE:// 处理空闲状态break;case RUNNING:// 处理运行状态break;case STOPPED:// 处理停止状态break;default:// 处理未知状态break;
}
  1. 枚举值处理:对枚举类型的值进行不同处理。
enum Color { RED, GREEN, BLUE };
enum Color myColor = get_color();switch (myColor) {case RED:// 处理红色break;case GREEN:// 处理绿色break;case BLUE:// 处理蓝色break;default:// 处理未知颜色break;
}

总结来说,if 语句适用于根据一个或多个条件的评估结果来执行不同的代码块,而 switch 语句则适用于基于一个表达式的离散值来执行多个不同的代码块。在选择使用哪种结构时,应根据具体的应用场景和需求来决定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/news/797876.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建python编译环境

目录 1.安装依赖包 2.安装失败进行换源 3. 更新系统 通过C 语言调用 Python 代码&#xff0c;需要先安装 libpython3 的 dev 依赖库&#xff08;不同的 ubuntu 版本下&#xff0c; python 版本 可能会有差异&#xff0c; 比如ubuntu 22.04 里是 libpython3.10-dev &#xff09…

2024/4/1—力扣—最小高度树

代码实现&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ struct TreeNode* buildTree(int *nums, int l, int r) {if (l > r) {return NULL; // 递归出口}struct…

题解:CF1941C(C. Rudolf and the Ugly String)

题解&#xff1a;CF1941C&#xff08;C. Rudolf and the Ugly String&#xff09; 题目翻译&#xff1a;给定一个字符串&#xff0c;请你求出最少需要删除几个字符才能使得该字符串内不存在 map 和 pie。 我们可以先在该字符串内找到所有的子串 mapie&#xff0c;并删除中间的…

[StartingPoint][Tier1]Sequel

Task 1 During our scan, which port do we find serving MySQL? (在扫描过程中&#xff0c;我们发现哪个端口为 MySQL 提供服务&#xff1f;) 3306 Task 2 What community-developed MySQL version is the target running? (目标正在运行哪个社区开发的 MySQL 版本&…

Python实现【坦克大战】+源码分享

写在前面&#xff1a; 坦克大战&#xff0c;这款经典的电子游戏&#xff0c;无疑是许多80后和90后心中不可磨灭的童年记忆。它不仅仅是一款游戏&#xff0c;更是那个时代科技娱乐方式的缩影&#xff0c;见证了电子游戏行业的起步与发展。 在那个电脑和网络尚未完全普及的年代…

c语言实现2048小游戏

#include <stdio.h> #include <stdlib.h> #include <time.h> #include <conio.h>int best 0 ;// 定义2048游戏的结构体 typedef struct { int martix[16]; // 当前4*4矩阵的数字 int martixPrior[16]; // 上一步的4*4矩阵的数字 int emptyIndex[16…

LeetCode 1017. 负二进制转换

解题思路 相关代码 class Solution {public String baseNeg2(int n) {if(n0) return "0";String s"";while(n!0)if(Math.abs(n)%20){nn/(-2);ss0;}else{ss1; n (n-1)/(-2);}String t reverse(s);return t;}public String reverse(String s){Str…

嵌入式培训4-7

今日作业&#xff1a; 1、有一个隧道&#xff0c;全长5公里&#xff0c;有2列火车&#xff0c;全长200米&#xff0c; 火车A时速 100公里每小时 火车B时速 50公里每小时 现在要求模拟火车反复通过隧道的场景(不可能2列火车都在隧道内运行) 2、有一个隧道&#xff0c;全长5公里&…

前端三剑客 —— JavaScript (第一节)

目录 回顾内容 1.弹性布局 2.网格布局 JavaScript 概述 发展 浏览器 什么是Javascript JavaScript 能干什么 JavaScript需要的环境 JavaScript初体验 基本数据 JS书写方式 行内JS 页面JS 外部JS 1&#xff09;创建外部JS文件 2&#xff09;编写页面 对话框 警…

达梦数据库的快速加列参数ALTER_TABLE_OPT使用

达梦数据库的表数据量较大时&#xff0c;在线直接修改表结构新增字段会很慢 现象&#xff1a;开发人员测试环境增加一个字段耗时7分钟&#xff0c;数据量仅仅2千万&#xff1b; 为了解决这一问题&#xff0c;达梦数据库提供一个动态会话级参数&#xff1a;ALTER_TABLE_OPT&am…

vue中三种watcher

在分析之前我们先来看看&#xff0c;vue中都有哪些Watcher种类呢&#xff1f;以及分别在什么时候创建呢&#xff1f;从vue源码里面看&#xff0c;Watcher是一个公共类&#xff0c;在不同的地方去初始化Watcher就代表不同类的Watcher。主要分为以下三类&#xff1a; computed w…

【Threejs进阶教程-效果篇】1.Threejs文字与css2d/css3d技术

Threejs文字与css2d/css3d技术 学习ThreeJS的捷径学习之前先搞清楚自己想要什么样的效果贴图文字准备一张带文字的png贴图使用sprite来进行贴图实现2D始终面朝相机的文字使用planeGeometry来贴图实现3D文字使用planeGeometry来贴图实现伪3D文字动态贴图文字html2Canvas 文字几何…

【算法】寻找数组中心下标 - 双指针/求总和

题目 给定一个非空数组&#xff0c;找到一个元素&#xff0c;该元素左侧元素和等于其右侧元素和&#xff0c;返回该元素下标。 如果没有则返回-1&#xff0c;有多个则返回最左侧一个。 原理 1、双指针 定义两个变量&#xff0c;一个为从左侧累加的和 leftSum 0&#xff0c…

操作系统复习

虚拟内存 内存(memory)资源永远都是稀缺的&#xff0c;当越来越多的进程需要越来越来内存时&#xff0c;某些进程会因为得不到内存而无法运行&#xff1b; 虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存&#xff0c;而实际上&#xff0…

C++ P1271 【深基9.例1】选举学生会

文章目录 一、题目描述【深基9.例1】选举学生会题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 二、参考代码 一、题目描述 【深基9.例1】选举学生会 题目描述 学校正在选举学生会成员&#xff0c;有 n n n&#xff08; n ≤ 999 n\le 999 n≤999&#xff09;名候…

HTML基础知识详解(下)(如果想知道html的全部基础知识点,那么只看这一篇就足够了!)

前言&#xff1a;在上一篇文章中&#xff0c;我们已经学习完了超链接标签、列表标签和表格标签&#xff0c;但是我们还有一些标签没有学习&#xff0c;在这篇文章中&#xff0c;我们将学习剩余的标签。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页…

java的基本数据类型

在Java编程语言中&#xff0c;基本数据类型是构成Java程序的基础元素&#xff0c;它们用于存储简单值。Java的基本数据类型可以分为两大类&#xff1a;原始类型&#xff08;Primitive Types&#xff09;和引用类型&#xff08;Reference Types&#xff09;。原始类型包括整型、…

JAVA并发编程(一)

JAVA并发编程&#xff08;一&#xff09; 1.1JAVA线程API 1.1.1currentThread package com.lisus2000.thread;/** * 当前线程 * */ public class Test07 extends Thread {public Test07() {System.out.println("new Test07()......" Thread.currentThread().getNa…

【前端浅谈】前端开发语言有哪些

前端开发主要涉及到的语言包括以下几种&#xff1a; HTML (HyperText Markup Language): HTML是网页的基础结构&#xff0c;它定义了网页的结构和内容。HTML5是最新的版本&#xff0c;提供了更多的语义标签和API&#xff0c;用于构建更丰富、更互动的网页体验。 CSS (Cascadin…

vivado中移位寄存器的优化(二)

移位寄存器优化用于改善移位寄存器单元&#xff08;SRLs&#xff09;与其他逻辑单元之间的负裕量路径的时序。如果存在对移位寄存器单元&#xff08;SRL16E或SRLC32E&#xff09;的时序违规&#xff0c;优化会从SRL寄存器链的开始或结束位置提取一个寄存器&#xff0c;并将其放…