【04】JAVASE-循环语句【从零开始学JAVA】

Java零基础系列课程-JavaSE基础篇

Lecture:波哥

在这里插入图片描述

  Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。

四、循环语句

循环语句就是重复执行某块代码,能够大大提高我们的效率

/*** 输出一个 好好学习,天天向上 这个信息到控制台上* 输出两遍*    10遍呢*    100遍*    10000遍?* @param args*/public static void main(String[] args) {/*System.out.println("好好学习,天天向上");System.out.println("好好学习,天天向上");System.out.println("好好学习,天天向上");System.out.println("好好学习,天天向上");System.out.println("好好学习,天天向上");System.out.println("好好学习,天天向上");System.out.println("好好学习,天天向上");System.out.println("好好学习,天天向上");System.out.println("好好学习,天天向上");System.out.println("好好学习,天天向上");*/for(int i = 0 ; i < 10000 ; i ++){System.out.println("好好学习,天天向上 : " + i);}}

1.for循环

1.1 for循环的语法格式

for( 表达式1 ; 表达式2 ; 表达式3 ) 
{// 循环体语句  
}

语法格式说明:

for( 初始化语句 ; 循环条件语句 ; 控制条件语句 ) 
{// 循环体语句  
}
表达式说明
表达式1初始化语句,完成变量的初始化操作 初始化语句只会在第一次执行一次
表达式2循环条件语句,boolean类型,返回true进入循环体,返回false结束循环
表达式3控制条件语句,在循环体执行完成后执行的代码,负责修正变量,改变循环条件的

1.2 for循环的执行流程

在这里插入图片描述

1.3 课堂案例

  1. 控制台输出数据1-10
  2. 计算1到100的和,用for语句实现
  3. 求1~100之间不能被3整除的数的和

案例代码

/*** 控制台输出数据1-10* @param args*/
public static void main(String[] args) {// 添加注释的快捷键 多行注释 ctrl + shift + //*for (int i = 0 ; i < 10 ; i ++) {System.out.println(i+1);}*///		循环案例的实现  单行注释 Ctrl+/for (int i = 1 ; i <= 10 ; i ++) {System.out.println(i);}}
/*** 计算1到100的和,用for语句实现* @param args*/
public static void main(String[] args) {// 在for循环之外创建一个变量 来接收我们的数据 相当于一个 容器int total = 0 ; // 保存计算结果for ( int i = 1 ; i <= 100 ; i ++) {total += i; // 将变量的结果累加到到total中}System.out.println(total);}
package com.bobo.fordemo;public class ForDemo04 {/*** 求1~100之间不能被3整除的数的和*    1.先找到所有不能被3整除的数*    2.将找到的数累加即可* @param args*/public static void main(String[] args) {int total = 0;for( int i = 1 ; i <= 100 ; i ++){if (i % 3 != 0) {// 表示不能被3整除// System.out.println(i);total += i;}}System.out.println("1~100之间不能被3整除的数的和:" + total);}}

扩展案例:

1.求n的阶乘 9 * 8 * 7 * … * 1

package com.bobo.fordemo;import java.util.Scanner;public class ForDemo05 {/*** 求n的阶乘 9 * 8 * 7 * ... * 1* 5的阶乘*     5 * 4 * 3 * 2 * 1*     1 * 2 * 3 * 4 * 5*     其实和 1 到 N的整合的和  效果是一样* @param args*/public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("输入阶乘的值:" );int num = in.nextInt();int total = 1 ; // 记录阶乘结果的变量for( int i = 1 ; i <= num; i++){total *= i;}System.out.println(num + "的阶乘是:" + total);}}

2.实现如下的效果

请输入一个值:
根据这个值可以输出如下的加法表:
0 + 6 = 6
1 + 5 = 6
2 + 4 = 6
3 + 3 = 6
4 + 2 = 6
5 + 1 = 6
6 + 0 = 6
package com.bobo.fordemo;import java.util.Scanner;public class ForDemo06 {/*** 请输入一个值:根据这个值可以输出如下的加法表:0 + 6 = 61 + 5 = 62 + 4 = 63 + 3 = 64 + 2 = 65 + 1 = 66 + 0 = 6i + (6-i) = 6循环N次,每次循环打印一条输出语句* @param args*/public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("请输入一个1-9之间的数字" );int num = in.nextInt();for (int i = 0 ; i <= num ; i++) {System.out.println(i + " + " + (num - i ) + " = " + num);}System.out.println("------------");// 第二种方式 通过多个变量来控制for (int i = 0, j = num ; i <= num ;i++,j--) {System.out.println(i + " + " + j + " = " + num);}System.out.println("------------");// 第二种方式 通过多个变量来控制for (int i = 0, j = num ; j >= 0 ;i++,j--) {System.out.println(i + " + " + j + " = " + num);}}}

3.在控制台输出所有5位数的回文数字

注意:回文数如 12321,13531 等等… 11111

package com.bobo.fordemo;public class ForDemo07 {/*** 在控制台输出所有5位数的回文数字注意:回文数如 12321,13531 等等... 11111解决思路:1.遍历找出所有的5位数2.分离出遍历的数字的  万位  千位   十位  个位3.判断如果 万位和个位相等 同时 千位和十位相等 说明是我们要找的数字* @param args*/public static void main(String[] args) {for(int i = 10000; i < 100000 ; i ++ ){int ge = i / 1 % 10;int shi = i / 10 % 10;int qian = i / 1000 % 10;int wan = i / 10000 % 10;if (ge == wan && shi == qian) {System.out.println(i);}}}}

4.在控制台输出1000以内的所有的水仙花数,并统计水仙花数的个数。

注意:水仙花数指的是其各位数的立方和等于该数本身的三位数

153 = 1^3 + 5^ + 3^ = 153

package com.bobo.fordemo;public class ForDemo08 {/*** ctrl + d 快速删除一行* * 在控制台输出1000以内的所有的水仙花数,并统计水仙花数的个数。注意:水仙花数指的是其各位数的立方和等于该数本身的三位数153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 =153解决思路:1.遍历出所有的数字2.对遍历的数字,拆分出 个位 十位 百位3.判断 个位的立方+ 十位的立方 + 百位的立方 是否等于遍历的数字本身4.是  输出这个结果  统计变量+15.不是 不做任何处理* @param args*/public static void main(String[] args) {int count = 0 ; // 统计水仙花数的个数for (int i = 0 ; i <= 1000; i ++) {int ge = i / 1 % 10;int shi = i / 10 % 10;int bai = i / 100 % 10;/*if(ge * ge * ge + shi * shi * shi + bai* bai * bai == i){System.out.println(i);count ++;}*/if (Math.pow(ge, 3) + Math.pow(shi, 3) + Math.pow(bai, 3) == i) {System.out.println(i);count ++;} }System.out.println("1000以内的水仙花数是:" + count);}}

1.4 for循环的注意事项

1.4.1 大括号可以省略

如果循环体大括号省略 ,循环体默认执行for语句后面的第一条语句(;结尾)

public class ForDemo09 {public static void main(String[] args) {// 作用域:i 的作用域 是在for循环以内  表达式 1 2 3 4 中使用for(int i = 0 ; i < 4 ; i ++)//;System.out.println(i);// 这个是我们的循环体System.out.println("---------");}}
1.4.2 表达式2的值是一个boolean类型

表达式2如果有多个条件我们需要用逻辑运算符连接

int a = 10;
int b = 20;
for(int i = 0 ; i < 10 && (a > 0 || b < 30) ; i ++){}
1.4.3 表达式2可以省略,但是";"不能省略

​ 如果表达式2省略的话,那么程序会一直执行,直到资源耗尽,死循环

public static void main(String[] args) {for ( int i = 0 ;  ; i ++) {System.out.println("-->" + i);}
}
1.4.4 表达式1 省略,表达式3省略

​ 表达式1和表达式3也省略

package com.bobo.fordemo;public class ForDemo11 {/*** 表达式1 初始化变量的* @param args*/public static void main(String[] args) {int i = 0; // 表示i的作用域在方法中for (; i < 10 ;) {System.out.println(i);// 将表达式4的信息 写到循环体的尾部i ++;}/*for ( int i = 0 ; i < 10; i++) {}*/}}
1.4.5 表达式123都可以省略

​ 表达式123都可以省略,但是两个";"是不能够省略的,出现死循环的情况

public class ForDemo12 {/*** 表达式1 初始化变量的* @param args*/public static void main(String[] args) {for(;;){System.out.println("----");}}}

2.while循环

​ while是Java使用频率也比较高的一种循环方式。while语句的语法结构要比for循环简单些

2.1 语法格式

while (条件表达式) {// 循环语句
}
/*** while循环* @param args*/
public static void main(String[] args) {int i = 0;while( i < 10){System.out.println("i = " + i);i ++ ;}System.out.println("循环结束...");
}

2.2 while语句的执行顺序

  1. 首先判断条件表达式结果是为true还是false
  2. 如果结果是true,执行循环体
  3. 如果结果是false,退出循环体

在这里插入图片描述

这里面为了便于大家的理解,可以将while循环看出for循环的一种简化形式

for( 表达式1 ; 表达式2 ; 表达式3 ){循环体
}
--->
表达式1
for( ; 表达式2 ; ){循环体;表达式3
}

对应的while循环

表达式1
while (表达式2){循环体表达式3
}

2.3 课堂案例

1.用while语句去实现1到100的和

package com.bobo.whiledemo;public class WhileDemo02 {/*** 用while语句去实现1到100的和* @param args*/public static void main(String[] args) {int total = 0; // 记录总和int i = 1; // 声明的变量while( i <= 100){total += i;// 改变循环条件i ++; // 不能漏掉,不然会 死循环}System.out.println("1到100的和是:" + total);}}

2.用while语句实现1到100偶数的和

/*** 用while语句实现1到100偶数的和* @param args*/public static void main(String[] args) {int total = 0;int i = 0;while( i <= 100){if( i % 2 == 0){// 表示循环的数字是偶数total += i;}i++;}System.out.println("1到100之间的偶数和是:" + total);}public static void main(String[] args) {int sum = 0;int i = 2;while(i <= 100){sum += i;i += 2; // 每次自增2}System.out.println("sum = " + sum);}

3.将前面讲的for循环中的案例该为通过while循环来实现

3.do while循环

​ do while循环的特点:先执行一次循环体,然后在判断条件是否成立

3.1 语法格式

do{循环语句;
}while ( 条件表达式 ) ;
public static void main(String[] args) {int i = 0 ;do{// 循环在循环条件判断之前执行一次System.out.println("----" + i);}while(i < 0);System.out.println("循环执行结束...");}

3.2 执行顺序

  1. 先执行循环语句一次
  2. 然后判断条件语句的返回结果是true还是false
  3. 如果是true再执行一次循环体,然后判断条件语句
  4. 如果是false,那么直接退出循环

在这里插入图片描述

3.3 课堂案例

1.使用do-while语句去实现1到100的和

2.使用do-while循环实现1-100的偶数求和

3.使用do-while循环实现for循环中的所有的案例

4. while循环和for循环的对比

  1. for循环和while循环都是先判断再执行,do-while是先执行再判断,并且一定会执行一次循环体
  2. 在循环结束之后,还希望能够使用循环变量,使用while循环,否则使用for循环,for循环的变量i只能作用于循环体
  3. 死循环的方式

while:

while (true) {}

do -while:

do{}while(true);

for:

for (;;){}

循环方式的选择:

1.如果循环条件是一个区间范围(循环次数确定的),推荐使用for循环

2.如果循环次数不明确的情况下,推荐使用while循环

3.在第二个基础上如果要先执行再判断就使用do-while循环,否则使用while循环

场景引入:

请在控制台输出如下的图形
********
********
********
public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("********");System.out.println("********");System.out.println("********");
}

5.嵌套循环

5.1 嵌套循环的格式

最常用的方式:

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

其他的组合

for(表达式1 ; 表达式2 ; 表达式3){while(表达式){}
}
while(表达式){while(表达式){}   
}
do{for(表达式1 ; 表达式2 ; 表达式3){}
}while(表达式);

5.2 嵌套循环的规则

  1. 外层循环控制行数,内层循环控制列数
  2. 外层循环变量变化一次,内层循环变量要变化一轮

5.3 课堂案例

1.打印如下的图案

********
********
********
package com.bobo.forfor;public class QTDemo01 {/*** 请在控制台输出如下的图形*  ************************* @param args*/public static void main(String[] args) {// TODO Auto-generated method stub/*System.out.println("********");System.out.println("********");System.out.println("********");*/for(int i = 0 ; i < 8; i ++){System.out.print("*");}System.out.println(); // 显示的换行for(int i = 0 ; i < 8; i ++){System.out.print("*");}System.out.println();// 显示的换行for(int i = 0 ; i < 8; i ++){System.out.print("*");}System.out.println();// 显示的换行System.out.println("------------------");}}public static void main(String[] args) {/** 1. 外层循环控制行数,内层循环控制列数* 2. 外层循环变量变化以此,内层循环变量要变化一轮*/for (int i = 0 ; i < 3 ; i ++) { // 外层循环控制行数for( int j = 0 ; j < 8 ; j ++){ // 内层循环控制列数System.out.print("*");}System.out.println(); // 内层循环走完一遍 显示的换行}}

2.打印如下图案,直角三角形

*
**
***
****
*****
******
package com.bobo.forfor;public class QTDemo02 {/*** 输出如下图案*  *********************1. 外层循环控制行数,内层循环控制列数2. 外层循环变量变化以此,内层循环变量要变化一轮* @param args*/public static void main(String[] args) {for(int i = 0 ; i < 6 ; i ++){// i = 0 1*// i = 1 2*// i = 2 3*// ...for(int j = 0 ; j < i +1 ; j ++){System.out.print("*");}System.out.println();}}}

3.打印如下图案,直角三角形

*
***
*****
*******
*********
package com.bobo.forfor;public class QTDemo03 {/*** 输出如下图案*  ************************************1. 外层循环控制行数,内层循环控制列数2. 外层循环变量变化以此,内层循环变量要变化一轮* @param args*/public static void main(String[] args) {for(int i = 0 ; i < 6 ; i ++){// i = 0 1*// i = 1 3*// i = 2 5*// ...for(int j = 0 ; j < 2 * i +1 ; j ++){System.out.print("*");}System.out.println();}}}

4.打印九九乘法表

package com.bobo.forfor;public class QTDemo04 {/*** 打印九九乘法表* 1*1=1* 1*2=2  2*2=4* 1*3=3  2*3=6 3*3=9* ....* 1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=72 ... 9*9=81* * i = 1 1个表达式* i = 2 2个表达式* ..* i = 9 9个表达式* @param args*/public static void main(String[] args) {for(int i = 1 ; i <= 9 ; i ++){for(int j = 1 ;j <= i ; j ++){System.out.print(j + " × " + i + " = " +  i*j + "\t");}System.out.println();}}}

输出的结果

1×1=1	
1×2=2	2×2=4	
1×3=3	2×3=6	3×3=9	
1×4=4	2×4=8	3×4=12	4×4=16	
1×5=5	2×5=10	3×5=15	4×5=20	5×5=25	
1×6=6	2×6=12	3×6=18	4×6=24	5×6=30	6×6=36	
1×7=7	2×7=14	3×7=21	4×7=28	5×7=35	6×7=42	7×7=49	
1×8=8	2×8=16	3×8=24	4×8=32	5×8=40	6×8=48	7×8=56	8×8=64	
1×9=9	2×9=18	3×9=27	4×9=36	5×9=45	6×9=54	7×9=63	8×9=72	9×9=81

5.计算若干个学生5门课的平均分。

package com.bobo.forfor;import java.util.Scanner;public class QTDemo05 {/*** 计算若干个学生5门课的平均分。*    提示:*       外层循环一次处理一个学生*       内层循环一遍处理一个学生的五门成绩* @param args*/public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("输入学生的个数:");int num = in.nextInt();for(int i = 1 ; i <= num ; i ++){double sum = 0.0 ; // 记录当前学生的总成绩for(int j = 0 ; j < 5 ; j ++){ // 五门课程 内层循环5次// 获取该学生的每门课程的成绩double score = 0.0;System.out.println("请输入第" + i + "个学生的第" + (j+1) + "门的成绩");score = in.nextDouble();sum += score;} // 通过一次内层循环获取到该学生的总成绩System.out.println("第" + i + "个学生的平均成绩是:" + sum/5);}}}

在这里插入图片描述

6.break、continue、return关键字

6.1 break关键字

6.1.1 break关键字介绍

​ 在循环过程中我们要跳出循环的时候那么可以通过break关键字来实现,改变程序控制流。

用户do-while、while、for循环中,可以跳出循环而执行循环以后的语句

在这里插入图片描述

6.1.2 使用的场合
  1. 循环语句中(单层循环、嵌套循环)

  2. switch语句

6.1.3 课堂案例

1.打印1到10个数,遇到4的倍数程序自动退出

package com.bobo.breakdemo;public class BreakDemo01 {/*** 打印1到10个数,遇到4的倍数程序自动退出* @param args*/public static void main(String[] args) {for( int i = 1 ;i <= 10 ; i++){if(i % 4 == 0){break; // 跳出循环 执行之后的代码}System.out.println(i);}System.out.println("程序结束...");}}

2.循环录入学生成绩,求和。如果输入的成绩为负数。则停止输入,给出错误的提示

package com.bobo.breakdemo;import java.util.Scanner;public class BreakDemo02 {/*** 循环录入学生成绩,求和。如果输入的成绩为负数。则停止输入,给出错误的提示* @param args*/public static void main(String[] args) {Scanner in = new Scanner(System.in);int sum = 0;int i = 1; // 记录循环的次数while(true){System.out.println("请输入第" + i + "个学生的成绩:");int score = in.nextInt();if(score < 0){// 表示是负数System.out.println("你输入的数据有误!!!");break; // 退出循环}sum += score;System.out.println("sum = " +sum);i++;}}}

3.嵌套循环中的break;只能跳出包裹的那层循环

    public static void main(String[] args) {for (int i = 0; i < 5; i++) {for (int j = 0; j < 5; j++) {if(j == 3 && i ==2){break;}System.out.print( i + "+ " + j + " = " + (i + j ) + "\t" );}//break;System.out.println();}}

在这里插入图片描述

6.2 continue 关键字

作用:continue关键字用于跳过某个循环语句的一次执行,下一次循环还会继续

使用的场合:跳过循环体中剩余的语句而执行下一次循环

在这里插入图片描述

package com.bobo.continuedemo;import java.util.Scanner;public class ContinueDemo01 {/*** 循环录入Java课程的学生成绩,统计分数大于等于80分的学生比例* 分析:*    1.通过循环获取分数大于等于80分的学生人数num*    2.判断成绩是否<80分,满足条件不执行num++,直接进入下一次循环* @param args*/public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入班级总的人数:");int count = input.nextInt();int num = 0 ; // 记录成绩大于等于80分的人数for(int i = 0 ; i < count ; i ++){System.out.println("请输入第" + i + "个学生的成绩:");int score = input.nextInt();if(score < 80){continue;}num++;}System.out.println("80分以上的人数:" + num);System.out.println("80分以上的人数的比例:" + num/(double)count);}}

6.3 break和continue的对比

使用场合

  1. break可以用于switch语句和循环结构中
  2. continue只能用于循环结构中

作用:

  1. break语句终止某个循环,程序跳转到循环块外的下一条语句

  2. continue跳出本次循环,进入下一次循环

6.4 课外练习

1.循环录入会员信息

在这里插入图片描述

package com.bobo.continuedemo;import java.util.Scanner;public class ContinueDemo02 {/*** 循环录入会员信息* @param args*/public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("MyShopping管理系统....");for(int i = 0 ; i < 3 ; i ++){System.out.println(i + "请输入会员号<4位整数>");int vipNumber = input.nextInt();System.out.println("请输入会员生日(月/日 用俩位整数表示):");String birthday = input.next();System.out.println("请输入会员的积分:");int score = input.nextInt();if( !(vipNumber >=1000 && vipNumber < 10000)){System.out.println("客户号" + vipNumber + "无效");System.out.println("录入信息失败...");continue;}System.out.println("您录入的会员信息是:");System.out.println(vipNumber + "\t" + birthday + "\t" + score);}}}

在这里插入图片描述

2.模拟验证用户登录信息

录入成功:

在这里插入图片描述

在这里插入图片描述

package com.bobo.continuedemo;import java.util.Scanner;public class ContinueDemo03 {/*** 模拟用户登录操作*   情况:*      1.登录成功*      2.登录失败,提示可以使用的登录次数,*      3.登录失败的次数超过了规定的次数,就不让再登录* @param args*/public static void main(String[] args) {Scanner input = new Scanner(System.in);for(int i = 0 ; i < 3 ; i ++){ // 循环控制登录的次数System.out.println("请输入登录的账号:" );String userName = input.next();System.out.println("请输入密码:");String password = input.next();// 判断账号密码是否正确 admin  123456if("admin".equals(userName) && "123456".equals(password)){// 表示登录成功System.out.println("欢迎光临MyShopping管理系统....");break; // 跳出循环}// 表示登录失败if(i == 2){System.out.println("对不起,您3次机会都输入错误~~");continue;}System.out.println("认证失败,您还有" + (2-i) + "次机会");}}}

在这里插入图片描述

在这里插入图片描述

6.5 return关键字

​ return关键字的作用是从当前方法中退出。返回到调用该方法的语句处,并且从该语句的下一条语句处开始执行。还没有讲方法,我们会在下节课中给大家详细介绍

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

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

相关文章

解决双击PDF文件出现打印的问题【Adobe DC】

问题描述 电脑安装Adobe Acrobat DC之后&#xff0c;双击PDF文件就会出现打印&#xff0c;而无法直接打开。 右键PDF文件就会发现&#xff0c;第一栏出现的不是用Adobe打开&#xff0c;而是打印。 重装软件多次仍然无法解决。 原因 右键菜单被改写了。双击其实是执行右键菜…

条件编译 #和##运算符

目录 1. #运算符2. ##运算符3. 条件编译4. 题目分享总结 正文开始 前言: 本章为C语言语法完结撒花, 下文将进行C语言中#和##操作符以及条件编译的讲解, 来进一步让我们了解C语言. 作者主页: 酷酷学!!! 1. #运算符 #运算符将宏的⼀个参数转换为字符串字⾯量。它仅允许出现在带…

解锁ApplicationContext vs BeanFactory: 谁更具选择性?

目录 一、聚焦源码回顾 &#xff08;一&#xff09;源码分析和理解 &#xff08;二&#xff09;简短的回顾对比建议 二、ApplicationContext vs BeanFactory特性对比 &#xff08;一&#xff09;主要特性总结 &#xff08;二&#xff09;直接建议 三、案例简单说明 &am…

[华为OD] 给航天器一侧加装长方形或正方形的太阳能板 100

给航天器一侧加装长方形或正方形的太阳能板&#xff08;图中的红色斜线区域&#xff09;&#xff0c;需要先安装两个支 柱&#xff08;图中的黑色竖条&#xff09;&#xff0c;再在支柱的中间部分固定太阳能板。但航天器不同位置的支柱长度 不同&#xff0c;太阳能板的安装面…

神经网络中多层卷积的作用

在神经网络中采用多层卷积的目的是为了逐步提取和组合图像的抽象特征&#xff0c;从而更有效地学习数据的表示并执行复杂的任务。不同层的卷积具有不同的作用&#xff0c;从较低层次的特征&#xff08;例如边缘、纹理&#xff09;到较高层次的抽象特征&#xff08;例如物体部件…

如何在Windows 11中安装或删除可选功能?这里提供详细步骤

序言 Windows 11提供了各种各样的功能,其中许多功能,如Linux的Windows子系统(WSL)和语言包,它默认情况下不会安装。你也可以删除默认情况下安装的功能,以下是如何以图形方式或从命令行执行此操作。 关于Windows 11中的可选功能,你需要了解的内容 还有其他添加和删除功…

ubuntu20 中设置桌面背景任务

1. 下载conky 使用 Conky 在 Ubuntu 中显示信息&#xff0c;例如你的阅读计划&#xff0c;可以分几个步骤来完成。Conky 是一款灵活的轻量级系统监视器&#xff0c;能够在桌面上显示各种信息。以下是基本的设置步骤&#xff1a; 安装 Conky 首先&#xff0c;你需要在 Ubuntu…

TR6 - Transformer实战 单词预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目录 理论知识关于数据集 Wikitext-2 模型结构代码实现0. 环境1. 加载数据集2. 模型搭建3. 创建模型4. 单轮训练和评估的流程5. 训练 模型效果总结与心得体会 …

文本溢出体验进阶:CSS 技巧实现单行/多行隐藏展示以及实际场景应用,确保内容可读性和布局整洁性

CSS文本溢出隐藏是一种常见的场景&#xff0c;它广泛应用于各种网页设计中&#xff0c;旨在确保内容的可读性和布局的整洁性&#xff0c;特别是在空间有限或需要适应不同屏幕尺寸的情况下。 一、文本溢出隐藏并显示省略号 1、单行文本溢出隐藏并显示省略号 对于单行文本&…

数据可视化———Tableau

基本认识&#xff1a; 维度&#xff1a;定性—字符串文本&#xff0c;日期和日期时间等等 度量&#xff1a;定量—连续值&#xff0c;一般属于数值 数据类型&#xff1a; 数值 日期/日期时间 字符串 布尔值 地理值 运算符 算数运算符&#xff1a;加减乘除,%取余&#xff0c;…

抖音 小程序 获取手机号 报错 getPhoneNumber:fail auth deny

这是因为 当前小程序没有获取 手机号的 权限 此能力仅支持小程序通过试运营期后可用&#xff0c;默认获取权限&#xff0c;无需申请&#xff1b; https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/guide/open-capabilities/acquire-phone-number-acqu…

多商家AI智能名片商城系统(开源版)——构建高效数字化商业新生态

一、项目概述 1、项目背景 1&#xff09;起源 随着数字化时代的快速发展&#xff0c;传统名片和商城系统已经难以满足企业日益增长的需求。商家需要更高效、更智能的方式来展示自己的产品和服务&#xff0c;与消费者进行互动和交易。同时&#xff0c;开源技术的普及也为开发…

代码随想录算法训练营第四十六天| LeetCode139.单词拆分

一、LeetCode139.单词拆分 题目链接/文章讲解/视频讲解&#xff1a;https://programmercarl.com/0139.%E5%8D%95%E8%AF%8D%E6%8B%86%E5%88%86.html 状态&#xff1a;已解决 1.思路 单词明显就是物品&#xff0c;字符串s明显就是背包&#xff0c;那么问题就变成了物品能不能把背…

Jmeter之Beanshell详解

一、 Beanshell概念 Beanshell: BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;BeanShell是一种松散类型的脚本语言(这点和JS类似);BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性…

【项目实战】基于高并发服务器的搜索引擎

【项目实战】基于高并发服务器的搜索引擎 目录 【项目实战】基于高并发服务器的搜索引擎搜索引擎部分代码index.htmlindex.hpplog.hppparser.cc&#xff08;用于对网页的html文件切分且存储索引关系&#xff09;searcher.hpputil.hpphttp_server.cc&#xff08;用于启动服务器和…

plsql 新建sql窗口 初始化慢的问题

问题描述&#xff1a; 新建sql窗口当sql语句多的情况下初始化很慢。 解决方法&#xff1a; 采用导入表的方式。 具体方式 工具->导入表->sql插入。 使用命令窗口 导入文件&#xff0c;然后点击导入按钮。

SpringBoot学习之SpringBoot3集成OpenApi(三十八)

Springboot升级到Springboot3以后,就彻底放弃了对之前swagger的支持,转而重新支持最新的OpenApi,今天我们通过一个实例初步看看OpenApi和Swagger之间的区别. 一、POM依赖 我的POM文件如下,仅作参考: <?xml version="1.0" encoding="UTF-8"?>…

社交巨头与去中心化:解析Facebook在区块链的角色

在数字化时代&#xff0c;社交媒体已经成为人们日常生活中不可或缺的一部分。作为全球最大的社交媒体平台&#xff0c;Facebook 在社交领域的影响力无可置疑。然而&#xff0c;随着区块链技术的崛起&#xff0c;Facebook 也开始探索如何将这一技术应用于其平台&#xff0c;以适…

SpringMVC 源码剖析

SpringMVC 源码剖析 0 从源码角度分析SpringMVC执行流程 // 前端控制器&#xff0c;SpringMVC最核心的类 public class DispatcherServlet extends FrameworkServlet {// 前端控制器最核心的方法&#xff0c;这个方法是负责处理请求的&#xff0c;一次请求&#xff0c;调用一次…

Unity类银河恶魔城学习记录15-5,6 p157 Audio time limiter p158 Area sound

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili​​ AreaSound.cs using System.Collections; using System.Collections.G…