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

java 2(程序流程控制)【含例题详解】

java ——程序流程控制

✍作者:电子科大不知名程序员

🌲专栏:java学习指导

各位读者如果觉得博主写的不错,请诸位多多支持;如果有错误的地方,欢迎在评论区指出

目录

  • java ——程序流程控制
    • 分支结构
      • if-else
      • switch-case
      • scanner
    • 循环
      • for 循环
      • while 循环
      • do-while 循环
    • 嵌套循环
    • break和continue
    • break和continue

三种基本流程结构:顺序结构、分支结构、循环结构

分支结构

if-else

三种结构:

if(条件表达式){执行代码块;
}
//二选一
if(条件表达式){执行代码块1;
}
else{执行代码块2;
}
//多选一
if(条件表达式1){执行代码块1;
}else if(条件表达式2){执行代码块2;}
......else{执行代码块n;}

switch-case

1.格式

switch(表达式){
case 常量1:语句1;//break;
case 常量2:语句2;//break;
......
case 常量N:语句N;    break;
default:语句;//break;
}

//break的意思是不一定要用break

public class SwitchCaseTest {public static void main(String[] args) {int number=2;switch(number) {case 0:System.out.println("zero");case 1:System.out.println("one");case 2:System.out.println("two");case 3:System.out.println("three");default:System.out.println("other");}}
}

运行结果如下:

image-20220912233945991

【说明】:

1.根据switch表达式中的值,一次匹配各个case中的常量,一旦匹配成功,进入相应case结构中,调用其执行语句,当调用完执行语句后,则仍然继续向下执行其它case结构中的执行语句,直到遇到break关键字或者switch-case末尾结束为止;

2.要想像if-else那样的多选一:需要在每一个case后加break;

break:可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构;

3.switch结构中的表达式,只能是如下的6种数据类型之一:byte、short、char、int、枚举类型、String类型

boolean isRight=ture;
switch(isRight){              //wrong......
}

4.case后放的是常量,不能作范围判断(相当于判断==)

5.break关键字在switch结构中是可选的(绝大多数情况要加)

6.default相当于if-else结构中的else中类型,当前面情况(case)都不满足时执行

​ default也是可选的,且位置是灵活的(用不到)

实例1:

import java.util.Scanner;
public class SwitchCase3 {//对于学生成绩大于60分的,输出“合格”。低于60分的,输出不合格public static void main(String[] args) {Scanner scan=new Scanner(System.in);int score_1=scan.nextInt();int score_2=score_1/10;switch(score_2) {case 1:case 2:case 3:case 4:case 5:System.out.println("Failed");break;case 6:case 7:case 8:case 9:case 10:System.out.println("pass");break;}}
}

优化:switch(score_1/60)——这样就分成了及格和不及格的两种情况了

实例2:

package my_first_java_code;import java.util.Scanner;
public class SwitchCase4 {public static void main(String [] args){//编写程序:从键盘上输入2022年的月份和日期,通过程序求得这是2022的第几天Scanner scan=new Scanner(System.in);System.out.println("Please enter a month:");int month=scan.nextInt();System.out.println("Please enter a day:");int day=scan.nextInt();//定义一个变量来保存总天数int sumDays=0;/*方法1:过于的冗余* switch(month) {case 1:sumDays=day;case 2:sumDays=31+day;case 3:...}*///方法2:我们不妨思考,因为我们到下个月的时候正好要将前面所有月的天数相加,因此不妨将前几个月的天数写在下面,那么没有break的情况下就会自动执行switch(month) {case 12:sumDays+=30;case 11:sumDays+=31;case 10:sumDays+=30;case 9:sumDays+=31;case 8:sumDays+=31;case 7:sumDays+=30;case 6:sumDays+=31;case 5:sumDays+=30;case 4:sumDays+=31;case 3:sumDays+=28;case 2:sumDays+=31;case 1:sumDays=day;}System.out.println("2022年的第"+month+"月第"+day+"日是第"+sumDays+"天");//注意用连接符连接}
}

通过实例2:我们再次强调,break是可选的马,根据实际要求来

实例3:不仅仅考虑2022年,我们加入对年的思考——需要判断是否是闰年

import java.util.Scanner;
public class SwitchCaseTest5 {public static void main(String[] args) {Scanner scan=new Scanner(System.in);System.out.println("Please enter a year:");int year=scan.nextInt();System.out.println("Please enter a month:");int month=scan.nextInt();System.out.println("Please enter a day:");int day=scan.nextInt();//定义一个变量来保存总天数int sumDays=0;switch(month) {case 12:sumDays+=30;case 11:sumDays+=31;case 10:sumDays+=30;case 9:sumDays+=31;case 8:sumDays+=31;case 7:sumDays+=30;case 6:sumDays+=31;case 5:sumDays+=30;case 4:sumDays+=31;case 3://根据是否是闰年来决定//sumDays+=28;if(year%4==0&&year%100!=0||year/400==0) {sumDays+=29;   //是闰年}else {sumDays+=28;   //不是闰年}case 2:sumDays+=31;case 1:sumDays=day;}System.out.println(year+"年的第"+month+"月第"+day+"日是第"+sumDays+"天");}
}

scanner

如何从键盘获取不同类型的变量:需要使用scanner类

具体实现步骤:

1.导包:import java.util.Scanner;

2.Scanner的实例化:Scanner scan=new Scanner(System.in);

3.调用Scanner类的相关方法:next()/nextXxx(),来获取指定类型的变量

对于String类,字符串型采用next();其它的采用/nextXxx()(注意首字母大写)

import java.util.Scanner;
public class ScannerTest {public static void main(String[] args) {Scanner scan=new Scanner(System.in);int num=scan.nextInt();    //int型System.out.println(num);}
}
import java.util.Scanner;
public class ScannnerTest02 {public static void main(String[] args) {Scanner scan=new Scanner(System.in);System.out.println("Please enter your name");String name=scan.next();System.out.println(name);System.out.println("Please enter your age");int age=scan.nextInt();System.out.println(age);System.out.println("Please enter your weight");double weight=scan.nextDouble();System.out.println(weight);System.out.println("Whether you join us (true/false)");boolean isjoin=scan.nextBoolean();System.out.println(isjoin);}
}

注意:我们需要根据相应的方法,来输入指定类型的值。如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchExce导致程序终止

循环

循环的四个组成部分:

1.初始化部分------>2.循环条件部分(boolean类型)------->3.循环体部分------>4.迭代部分

for 循环

for(1初始化部分;2循环条件部分;4迭代部分){3循环体部分;
}

实例:输入两个数正整数m和n,求其最大公约数和最小公倍数

最大公约数:首先要确定范围:1-两数间的较小数;若要满足最大,那么从两数间的较小数开始循环,找到第一个满足条件的数即可(然后退出循环:break)

最小公倍数:范围:两数中的较大数-两数的乘积;后续同理

package my_first_java_code;
import java.util.Scanner;
public class ForTest {public static void main(String[] args) {Scanner scan=new Scanner(System.in);System.out.println("请输入第一个正整数");int first_num=scan.nextInt();System.out.println("请输入第二个正整数");int second_num=scan.nextInt();//求最大公约数//先求出两数的较小数——三目运算符int min=(first_num<second_num)?first_num:second_num;for(int i=min;i>=1;i--) {if(first_num%i==0&&second_num%i==0) {System.out.println("最大公约数为"+i);break;}}int max=(first_num>second_num)?first_num:second_num;for(int j=max;j<first_num*second_num;j++) {if(j%first_num==0&&j%second_num==0) {System.out.println("最小公倍数为"+j);break;}}}
}

while 循环

1初始化条件
while(2循环条件){3循环体;4迭代条件;
}

do-while 循环

1初始化条件
do{3循环体;4迭代条件;
}while(2循环条件)

说明:

1.do-while循环至少会执行一次循环体

2.当循环会执行多次时,do-while循环和while循环没有区别

实例:从键盘读入个数不确定的整数,并判断读入数的个数,输入0时为结束条件

import java.util.Scanner;
public class CirculateEG {public static void main(String[] args) {Scanner scan=new Scanner(System.in);int count=0;while(true) {int import_num=scan.nextInt();if(import_num!=0) {count++;System.out.println("输入的个数为:"+count);}elsebreak;}}
}

对于该类无法确定循环次数的问题:while(true)/for( ; ; ),然后再用break来控制

【总结】:结束循环的方式:循环条件返回false;循环体中,执行break

嵌套循环

外层控制行数;内层控制列数

常见模型:

/*
*
**
***
****
*****
*/
规律:i=j(=)
for(int i=1;i<=5;i++){for(int j=1;j<=i;j++){System.out.print("*");}System.out.println();       //换行
}
/*
*****
****
***
**
*
*/
规律:i+j=5(=)
for(int i=1;i<=5;i++){for(int j=1;j<=5-i;j++){System.out.print("*");}System.out.println();       //换行
}

实例1:九九乘法表

public class Nine_nine_multiplication_table {public static void main(String[] args){for(int i=1;i<=9;i++) {for(int j=1;j<=i;j++) {System.out.print(i+"*"+j+"="+i*j+" ");}System.out.println();}}
}

实例2:输出质数

1:

public class Output_prime_numbers {public static void main(String[] args){for(int i=2;i<=100;i++) {boolean isFlag=true;for(int j=2;j<i;j++) {      //判断i是否是质数if(i%j==0) {isFlag=false;}}if(isFlag==true) {System.out.println(i);}}}
}

这里使用到一个标志:是否除尽;需要特别注意的是:每次在判断完后需要重置isflag的值

2.优化

判断质数时若已经被整除了,那么就不用再循环下去了:break(对非质数有效)

为了判断优化是否有效,我们通过记录运行时间来直观的看是否优化(单位:毫秒)

public class Output_prime_number_optimized_V1 {public static void main(String[] args){//获取当前时间距离1970-01-01 00:00:00的时间差long start_time=System.currentTimeMillis();for(int i=2;i<=100000;i++) {boolean isFlag=true;for(int j=2;j<i;j++) {      //判断i是否是质数if(i%j==0) {isFlag=false;break;}}if(isFlag==true) {System.out.println(i);}}//获取当前时间距离1970-01-01 00:00:00的时间差long end_time=System.currentTimeMillis();System.out.println("该程序运行时间为:"+(end_time-start_time));}
}

优化前程序运行时间与优化后程序运行时间如下:

在这里插入图片描述
很明显,时间相差10倍!

这里使用到了:

long start_time=System.currentTimeMillis();

System.currentTimeMillis();的返回值为整型,

3.再优化

方法:数学上有个规律,对于一个小于n的整数x,若n不能整除x,则n必定不能整数n/x,那么带来一个明显的优化就是循环控制语句从2到根号n即可。

修改为:

for(int j=2;j<Math.sqrt(i);j++)

这里对i求根号用到了数学方法:

Math.sqrt();    //括号内放开根数

再次优化后程序运行时间如下:

image-20220913215434083

break和continue

1.break:switch-case/循环结构中 作用:结束当前循环

2.continue:循环结构中 作用:结束当次循环

相同点:在break和continue之后是不能声明执行语句

3.对于嵌套循环内:break默认跳出包裹此关键字最近的一层循环

​ ------>若要结束某一特定的for循环:使用标签(continue同理)

label:for( ; ;){for( ; ;){break label;   //结束指定标识的一层循环结构}
}

实例:输出质数的另一种写法

label:for(int i=2;i<=100;i++) {for(int j=2;j<=Math.sqrt(i);j++) {      //判断i是否是质数if(i%j==0) {                       //如果出现了整除continue label;}}//能执行到此步骤的,都是质数System.out.println(i);
}

7591011354)]

break和continue

1.break:switch-case/循环结构中 作用:结束当前循环

2.continue:循环结构中 作用:结束当次循环

相同点:在break和continue之后是不能声明执行语句

3.对于嵌套循环内:break默认跳出包裹此关键字最近的一层循环

​ ------>若要结束某一特定的for循环:使用标签(continue同理)

label:for( ; ;){for( ; ;){break label;   //结束指定标识的一层循环结构}
}

实例:输出质数的另一种写法

label:for(int i=2;i<=100;i++) {for(int j=2;j<=Math.sqrt(i);j++) {      //判断i是否是质数if(i%j==0) {                       //如果出现了整除continue label;}}//能执行到此步骤的,都是质数System.out.println(i);
}

相关文章:

java 2(程序流程控制)【含例题详解】

java ——程序流程控制 ✍作者&#xff1a;电子科大不知名程序员 &#x1f332;专栏&#xff1a;java学习指导 各位读者如果觉得博主写的不错&#xff0c;请诸位多多支持&#xff1b;如果有错误的地方&#xff0c;欢迎在评论区指出 目录java ——程序流程控制分支结构if-elsesw…...

基于Conda完成创建多版本python环境

文章目录基于Conda完成创建多版本python环境基于Conda完成创建多版本python环境 通过cmd打开conda环境 d:\ProgramData\Anaconda3\Scripts\activate创建python3.7的环境 conda create -n py3.7 python3.7产生错误 Collecting package metadata (repodata.json): failed Unav…...

35岁的测试被裁,公司地位还不如00后...

国内的互联网行业发展较快&#xff0c;所以造成了技术研发类员工工作强度比较大&#xff0c;同时技术的快速更新又需要员工不断的学习新的技术。因此淘汰率也比较高&#xff0c;超过35岁的基层研发类员工&#xff0c;往往因为家庭原因、身体原因&#xff0c;比较难以跟得上工作…...

vue H5跳转小程序报错:config:fail,Error: 系统错误,错误码:63002,invalid signature

微信开发者工具下载地址与更新日志 错误码&#xff1a;63002,invalid signature 无效的签名 附录5 微信网页开发 /JS-SDK说明文档 微信 JS 接口签名校验工具 全局返回码说明 ​ 排查步骤 确认签名算法正确&#xff0c;可用 http://mp.weixin.qq.com/debug/cgi-bin/sand…...

来面试阿里测开工程师,HR问我未来3-5年规划,我给HR画个大饼。

在面试的过程中是不是经常被面试官问未来几年的职业规划?你会答吗&#xff1f;是不是经常脑袋里一片空白&#xff0c;未来规划&#xff1f;我只是想赚更多的钱啊&#xff0c;哈哈哈&#xff0c;今天我来教大家&#xff0c;如何给面试官画一个大饼&#xff0c;让他吃的不亦乐乎…...

【2373. 矩阵中的局部最大值】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个大小为 n x n 的整数矩阵 grid 。 生成一个大小为 (n - 2) x (n - 2) 的整数矩阵 maxLocal &#xff0c;并满足&#xff1a; maxLocal[i][j] 等于 grid 中以 i 1 行和 j 1 列为中心的 3 …...

Read book Netty in action(Chapter VII)--ChannelHandler和ChannelPipeline

序言 我们曾经学过了ByteBuf – netty的数据容器&#xff0c;还有ChannelHandler和ChannelPipeline&#xff0c;这一把将他们组合起来&#xff0c;这些组件的交互正是Netty的灵魂所在&#xff01; ChannelHanlder家族 在详细地学习ChannelHanlder之前&#xff0c;我们将在Ne…...

react的严格模式 和 解决react useEffect执行两次

useEffect执行两次 这个问题&#xff0c;主要是刚接触react的时候发的问题&#xff0c;当时也没总结。现在回过头来再总结一次&#xff01;&#xff01;&#xff01; 文章目录useEffect执行两次前言一、为什么useEffect执行两次1.React的严格模式&#xff08;模版创建项目&…...

C++中的STL

一、概念 STL&#xff0c;英文全称 standard template library&#xff0c;中文可译为标准模板库或者泛型库&#xff0c;其包含有大量的模板类和模板函数&#xff0c;是 C 提供的一个基础模板的集合&#xff0c;用于完成诸如输入/输出、数学计算等功能。 STL 最初由惠普实验室…...

【沐风老师】3dmax一键窗户生成器插件使用方法详解

3dmax一键窗户生成器插件教程 3dMax一键窗户生成器是一个在3dMax中自动创建3D窗户模型的脚本。它有28种风格的窗户样式&#xff0c;可以在Archviz项目中灵活应用&#xff0c;同时为3D艺术家节省大量时间。 【适用版本】 适用3dMax 2018.2及更高版本 【安装方法】 1.解压缩包&…...

【图像处理】数字图像处理基础(分辨率,像素,显示...)

Table of Contents1.数字图像处理基础1.1 图像表示1.1.1 图像成像模型1.1.2 数字图像的表示a.图像采样b.图像灰度的量化c.算比特数1.2 分辨率1.2.1 空间分辨率1.2.2 灰度分辨率1.3 像素间的关系1.3.1 像素邻域a.4邻域b.4对角邻域c.8邻域1.3.2 像素邻接1.3.3 像素连通1.3.4 像素…...

UE实现相机飞行效果CesiumForUnreal之DynamicPawn飞行原理浅析

文章目录 1.实现目标2.实现过程2.1 FlyTo实现原理与代码2.2 DynamicPawn飞行原理3.参考资料1.实现目标 基于CesiumForUnreal的Dynamic Pawn实现飞行效果GIF动图: 2.实现过程 实现原理较为简单,基于CesiumForUnreal插件中DynamicPawn中的Camera实现相关功能。其中FlyTo直接通…...

AIGC被ChatGPT带火!底层基础算力有望爆发式增长

ChatGPT火爆全球的背后&#xff0c;可以窥见伴随人工智能技术的发展&#xff0c;数字内容的生产方式向着更加高效迈进。ChatGPT属于AIGC的具体应用&#xff0c;而AIGC是技术驱动的数字内容新生产方式。AIGC类产品未来有望成为5G时代新的流量入口&#xff0c;率先受益的有望是AI…...

【链表OJ题(一)】移除链表元素

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;数据结构 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录链表OJ题(一)1. 移除…...

【解锁技能】学会Python条件语句的终极指南!

文章目录前言一. python条件语句的介绍1.1 什么是条件语句1.2 条件语句的语法1.3 关于内置函数bool()二. 分支语句之单分支三. 多分支语句3.1 二分支语句3.2 多分支语句3.3 嵌套循环总结前言 &#x1f3e0;个人主页&#xff1a;欢迎访问 沐风晓月的博客 &#x1f9d1;个人简介&…...

如何通过rem实现移动端的适配?

一、rem、em、vw\vh的区别&#xff1a; rem&#xff1a;参照HTML根元素的font-size em&#xff1a;参照自己的font-size vw/vh&#xff1a;将视口宽高平分100等份&#xff0c;数值就是所占比例 <!DOCTYPE html> <html lang"en"><head><meta…...

【论文阅读】-姿态识别

记录论文阅读&#xff0c;希望能了解我方向的邻域前沿吧 粗读 第一篇 ATTEND TO WHO YOU ARE: SUPERVISING SELF-ATTENTION FOR KEYPOINT DETECTION AND INSTANCE-AWARE ASSOCIATION 翻译&#xff1a;https://editor.csdn.net/md?not_checkout1&spm1001.2014.3001.5352…...

3.1 模拟栈+表达式求值

模拟栈 题目链接 栈的数组模拟非常简单&#xff0c;不详细描述 设置一个指针指向栈顶第一个元素即可 STL中stack实现已经更新在STL_Stack #include<iostream> #include<string>using namespace std;const int N1e51; int m; string s; int stack[N]; int p;//指针…...

【Python语言基础】——Python 创建表

Python语言基础——Python 创建表 文章目录 Python语言基础——Python 创建表一、Python 创建表一、Python 创建表 创建表 如需在 MySQL 中创建表,请使用 “CREATE TABLE” 语句。 请确保在创建连接时定义数据库的名称。 实例 创建表 “customers”: import mysql.connector…...

外贸建站,为什么别人的询盘更多更精准?

大多企业进行外贸建站的目的就是想要获得更多的精准询盘&#xff0c;但是具体该如何做&#xff0c;大多企业都没有方向&#xff0c;要么就是在网上看各种不系统的文章学着操作&#xff0c;要么就找个建站公司做好网站就不管了&#xff0c;而最终结果都不甚理想。那么怎样才能让…...

Gateway集成Netty服务

Gateway和Netty都有盲区的感觉&#xff1b; 一、Netty简介 Netty是一个异步的&#xff0c;事件驱动的网络应用框架&#xff0c;用以快速开发高可靠、高性能的网络应用程序。 传输服务&#xff1a;提供网络传输能力的管理&#xff1b; 协议支持&#xff1a;支持常见的数据传输…...

SpringMVC控制层private方法中出现注入的service对象空指针异常

一、现象 SpringMVC中controller里的private接口中注入的service层的bean为null&#xff0c;而同一个controller中访问修饰符为public和protected的方法不会出现这样的问题。 controller中的方法被AOP进行了代理&#xff0c;普通Controller如果没有AOP&#xff0c;private方法…...

【Unity】P4 脚本文件(基础)

Unity脚本文件&#xff08;基础&#xff09;适配的C#代码编辑器如何添加一个脚本文件获取蘑菇当前位置基础代码改变物体位置帧与帧更新前言 上一篇博文主要围绕Unity Inspector部分&#xff0c;围绕组件&#xff0c;资源文件&#xff0c;父子节点部分做介绍。 链接&#xff1a;…...

(2023版)零基础入门网络安全/Web安全,收藏这一篇就够了

由于我之前写了不少网络安全技术相关的文章和回答&#xff0c;不少读者朋友知道我是从事网络安全相关的工作&#xff0c;于是经常有人私信问我&#xff1a; 我刚入门网络安全&#xff0c;该怎么学&#xff1f; 要学哪些东西&#xff1f; 有哪些方向&#xff1f; 怎么选&#x…...

Vue3电商项目实战-登录模块2【05-登录-表单校验、06-登录-消息提示组件封装、07-登录-账户登录、08-登录-手机号登录、09-退出登录】

文章目录05-登录-表单校验06-登录-消息提示组件封装07-登录-账户登录08-登录-手机号登录09-退出登录05-登录-表单校验 文档&#xff1a;https://vee-validate.logaretm.com/v4/ 支持vue3.0 第一步&#xff1a;安装 执行命令 npm i vee-validate4.0.3 第二步&#xff1a;导入 …...

Python 中都有哪些常见的错误和异常?

本文首发自「慕课网」&#xff0c;想了解更多IT干货内容&#xff0c;程序员圈内热闻&#xff0c;欢迎关注&#xff01; 作者| 慕课网精英讲师 朱广蔚 Python 程序的执行过程中&#xff0c;当发生错误时会引起一个事件&#xff0c;该事件被称为异常。例如&#xff1a; 如果程…...

51单片机-1

1&#xff0c;单片机内部集成了CPU&#xff0c;RAM&#xff0c;ROM&#xff0c;定时器&#xff0c;中断系统&#xff0c;通讯接口等一系列电脑的常用硬件功能。单片机和计算机相比&#xff0c;单片机是一个袖珍版计算机 2&#xff0c;单片机里有中央处理器&#xff08;CPU&…...

【Azure 架构师学习笔记】-Azure Data Factory (4)-触发器详解-事件触发器

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Data Factory】系列。 接上文【Azure 架构师学习笔记】-Azure Data Factory (3)-触发器详解-翻转窗口 前言 事件触发指的是存储事件&#xff0c;所以在新版的ADF 中&#xff0c;已经明确了是“存储事件”&#xff0c;…...

【项目设计】高并发内存池(三)[CentralCache的实现]

&#x1f387;C学习历程&#xff1a;入门 博客主页&#xff1a;一起去看日落吗持续分享博主的C学习历程博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 也许你现在做的事情&#xff0c;暂时看不到成果&#xff0c;但不要忘记&…...

2023年,35岁测试工程师只能被“优化裁员”吗?肯定不是····

国内的互联网行业发展较快&#xff0c;所以造成了技术研发类员工工作强度比较大&#xff0c;同时技术的快速更新又需要员工不断的学习新的技术。因此淘汰率也比较高&#xff0c;超过35岁的基层研发类员工&#xff0c;往往因为家庭原因、身体原因&#xff0c;比较难以跟得上工作…...

gitlab部署使用,jenkins部署使用

gitlab部署使用&#xff0c;jenkins部署使用在线安装gitlab下载gitlab安装gitlab使用gitlab设置中文修改管理员密码创建组,创建项目,创建用户jenkins下载jenkins安装jenkin使用jenkins更改管理员密码配置拉取代码配置登录gitlab拉取代码的账号密码配置项目配置gitlab仓库配置构…...

从零开始的机械臂yolov5抓取gazebo仿真(环境搭建篇下)

sunday功能包使用介绍以及开源 sunday我给自己机械臂的命名&#xff0c;原型是innfos的gluon机械臂。通过sw模型文件转urdf。Sunday项目主要由六个功能包sunday_description、sunday_gazebo、sunday_moveit_config、yolov5_ros、vacuum_plugin、realsense_ros_gazebo组成&…...

GCC编译器 MinGW的下载安装使用教程

哎 总所周知 gcc可以用来编译C 和C。在linux广泛应用&#xff0c;那么window怎么使用gcc呢。就要用到gcc的window工具----MInGW&#xff0c;安装好之后&#xff0c;直接可以在windows的dos界面编译。下面讲解安装使用过程。1.官网下载MinGW - Minimalist GNU for Windows downl…...

【项目实战】SpringMVC配置全局属性,是实现WebMvcConfigurer接口,还是直接继承WebMvcConfigurationSupport类?

一、说明 官方推荐以下两种方式来配置全局的SpringMVC的相关属性 方式一:实现WebMvcConfigurer接口(推荐)方式二:直接继承WebMvcConfigurationSupport类。介绍一下两者区别吧。 二、 WebMvcConfigurer介绍 WebMvcConfigurer是一个接口,用于配置全局的SpringMVC的相关属…...

房产营销、地产中介如何高效低成本获客?

数字化对企业而言&#xff0c;机遇和挑战并存。房产企业可借助数字化加强日益扩大的业务规模和业务领域管理&#xff0c;以提升管理效率&#xff0c;降低管理难度&#xff1b;基于数字化技术加强客户的服务体验&#xff0c;进而收集多业态客户和场景数据&#xff0c;拓展创新业…...

Kotlin-作用域函数

在对象的上下文中执行代码块。当您在提供lambda表达式的对象上调用这样的函数时&#xff0c;它会形成一个临时作用域。在此范围内&#xff0c;可以不带名称地访问对象。这样的函数称为作用域函数。 let run with apply also 作用域函数不会引入任何新的技术功能&#xff0c;但它…...

QNX7.1 交叉编译开源库

1.下载QNX7.1 SDK并解压 ITL:~/work/tiqnx710$ ls -l 总用量 16 drwxrwxr-x 4 xxx4096 1月 28 13:38 host -rwxrwxr-x 1 xxx 972 1月 28 13:38 qnxsdp-env.bat -rwxrwxr-x 1 xxx 1676 1月 28 13:38 qnxsdp-env.sh drwxrwxr-x 3 xxx 4096 1月 28 13:38 target xxxITL:~/work/ti…...

论文投稿指南——中文核心期刊推荐(外国语言)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…...

Fabric系列 - 链码-内部链码的特性

(1)Fabric repo下的案例 Chaincode(1.4的目录结构) fabric/examples/chaincode/go ├── example02 #一个简单的转账合约 ├── eventsender #发送事件通知 ├── passthru #调用其他链码(或者其他channel的链码)example02 (转账) 一个简单的转账合约。该链码简单实…...

NetApp SnapCenter 备份管理 ——借助应用程序一致的数据备份管理,简化混合云操作

NetApp SnapCenter 简单、可扩展、赋权&#xff1a;跨 Data Fabric 的企业级数据保护和克隆管理 主要优势 • 利用与应用程序集成的工作流和预定义策略简化备份、恢复和克隆管理。 • 借助基于存储的数据管理功能提高性能和可用性&#xff0c;并缩短测试和开发用时。 • 提供基…...

Java内置队列和高性能队列Disruptor

一、队列简介 队列是一种特殊的线性表&#xff0c;遵循先入先出、后入后出&#xff08;FIFO&#xff09;的基本原则&#xff0c;一般来说&#xff0c;它只允许在表的前端进行删除操作&#xff0c;而在表的后端进行插入操作&#xff0c;但是java的某些队列运行在任何地方插入删…...

比特数据结构与算法(第四章_下)二叉树的遍历

本章将会详细讲解二叉树遍历的四种方式&#xff0c;分别为前序遍历、中序遍历、后续遍历和层序遍历。在学习遍历之前&#xff0c;会先带大家回顾一下二叉树的基本概念。学习二叉树的基本操作前&#xff0c;需要先创建一颗二叉树&#xff0c;然后才能学习其相关的基本操作&#…...

chatGPT是什么

2022年11月&#xff0c;人工智能公司OpenAI推出了一款聊天机器人&#xff1a;ChatGPT。它能够通过学习和理解人类语言来进行对话&#xff0c;还能与聊天对象进行有逻辑的互动。除了聊天&#xff0c;ChatGPT还能够根据聊天对象提出的要求&#xff0c;进行文字翻译、文案撰写、代…...

jenkins漏洞集合

目录 CVE-2015-8103 反序列化远程代码执行 CVE-2016-0788 Jenkins CI和LTS 远程代码执行漏洞 CVE-2016-0792 低权限用户命令执行 CVE-2016-9299 代码执行 CVE-2017-1000353 Jenkins-CI 远程代码执行 CVE-2018-1000110 用户枚举 CVE-2018-1000861 远程命令执行 CVE-2018…...

用canvas画一个炫酷的粒子动画倒计时

前言 &#x1f606; 这是一篇踩在活动尾声的文章&#xff0c;主要是之前在摸鱼社群里有人发了个粒子动画的特效视频&#xff0c;想着研究研究写一篇文章出来看看&#xff0c;结果这一下子就研究了半个多月。 &#x1f602; 下面就把研究成果通过文字的形式展现出来吧&#xf…...

Java技术学习——Maven相关知识

一、什么是Maven&#xff1f; Maven是Apache软件基金会组织维护的一款专门为Java项目提供构建和依赖管理支持的工具。 1.1 构建 构建过程包含的主要环节如下&#xff1a; 清理&#xff1a;删除上一次构建的结果&#xff0c;为下一次构建做好准备编译&#xff1a;Java源程序…...

C++ 认识和了解C++

1.在使用C语言写代码的时候开头要用到的是&#xff1a; #include<iostream> using namespace std;不可以写成这样&#xff1a; #include iostream.h&#xff08;1&#xff09;iostream是输入输出流类&#xff0c; istream输入流类 cin >> ostream输出流类 cout &…...

u盘误删的文件怎么找回

u盘误删的文件怎么找回?u盘的特点之一就是极其便携&#xff0c;可以容纳各种格式的数据和文件&#xff0c;需要时可以直接使用。每次使用都会或多或少的存放一些文件&#xff0c;但有使用就会有删除&#xff0c;为了不影响使用性&#xff0c;清理存储空间是必要的。清理中如果…...

二分查找由浅入深--算法--java

二分查找写在开头算法前提&#xff1a;算法逻辑算法实现简单实现leftright可能超过int表示的最大限度代码分析和变换更多需求&#xff1a;求索引最小的值java二分API应用基础题思考难度方法写在开头 二分查找应该是算比较简单的这种算法了&#xff0c;我本以为还可以。但有时候…...

【学习】笔记本电脑重新安装系统win10

安装系统有很多方法: 软件安装制作启动u盘本文使用的方法就是启动盘安装: 1.首先下载iso镜像文件: msdn我告诉你:MSDN, 我告诉你 - 做一个安静的工具站 (itellyou.cn) 2.下载启动盘制作工具: 制作启动盘rufus:Rufus - 轻松创建 USB 启动盘 3.官网下载: https://do…...