青岛网站关键字优化,专业制作公众号公司,济南网站优化公司哪家好,凡科沙发官网前言
本笔记是学习狂神的java教程#xff0c;建议配合视频#xff0c;学习体验更佳。
【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili Scanner对象
之前我们学的基本语法中我们并没有实现程序和人的交互#xff0c;但是Java给我们提供了这样一个工具类建议配合视频学习体验更佳。
【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili Scanner对象
之前我们学的基本语法中我们并没有实现程序和人的交互但是Java给我们提供了这样一个工具类我们可以获取用户的输入。
Scanner 类是 Java 中的一个实用工具类位于 java.util 包中主要用于从用户输入、文件或其他输入源中读取数据。它提供了一种简单且灵活的方式来解析不同类型的数据例如字符串、整数、浮点数等。
-
scanner.hasNext()
scanner.hasNext() 是 Scanner 类的一个方法用于检查输入源中是否还有下一个输入项。它是一个布尔方法返回 true 表示输入源中还有下一个输入项返回 false 表示没有更多输入项。
通过Scanner类的next()与nextLine()方法获取输入的字符串在读取前我们一般需要使用hasNext() 与hasNextLine()判断是否还有输入的数据。
-
scanner.next()
scanner.next() 是 Java 中 Scanner 类的一个方法用于从输入源中读取下一个单词token。它会根据默认的分隔符通常是空白字符包括空格、制表符和换行符来分隔输入内容并返回下一个单词。
一定要读取到有效字符后才可以结束输入。对输入有效字符之前遇到的空白next()方法会自动将其去掉。只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。next()不能得到带有空格的字符串。
-
下面这段代码使用hasNext()判断有无字符串输入然后使用.next()接收字符串输入。 创建了一个Scanner对象命名为scanner。System.in是Java标准输入流通常指向键盘输入。通过Scanner类可以方便地从键盘读取用户输入的数据。 调用了scanner.hasNext()方法。hasNext()方法用于检查Scanner对象是否还有下一个输入项即用户是否输入了内容。如果用户输入了内容hasNext()返回true否则返回false。 如果scanner.hasNext()返回true程序会进入if语句块。这行代码调用了scanner.next()方法用于读取用户输入的下一个字符串。next()方法会读取用户输入的内容直到遇到空白符如空格、换行符等为止并将读取到的内容存储到变量str中。
package scanner;
import java.util.Scanner;public class demo1 {public static void main(String[] args) {Scanner scanner new Scanner(System.in); // 创建一个scanner对象用于接收键盘数据System.out.println(接收);if (scanner.hasNext()){ // 判断有无输入字符串String str scanner.next(); // 使用next方法接收System.out.println(内容为str);}scanner.close();}
}输出示例
接收
hello world
内容为hello
-
scanner.hasNextLine()
scanner.hasNextLine() 是 Java 中 Scanner 类的一个方法用于检查输入源如键盘输入或文件输入中是否还有下一行数据。它的返回值是一个布尔值boolean
通过Scanner类的next()与nextLine()方法获取输入的字符串在读取前我们一般需要使用hasNext() 与hasNextLine()判断是否还有输入的数据。
-
scanner.nextLine() 作用读取输入中的整行内容直到遇到换行符为止。 行为从当前位置开始读取直到遇到换行符\n 或 \r\n并将换行符之前的全部内容作为结果返回。 特点会读取整行内容包括空格和制表符但不会读取换行符本身。
下面这段代码使用hasNextLine()判断有无字符串输入然后使用.nextline()接收字符串输入。 创建了一个Scanner对象命名为scanner。System.in是Java标准输入流通常指向键盘输入。通过Scanner类可以方便地从键盘读取用户输入的数据。 调用了scanner.hasNextLine()方法。hasNextLine()方法用于检查Scanner对象是否还有下一行即用户是否输入了内容。如果用户输入了内容hasNextLine()返回true否则返回false。 如果scanner.hasNextLine()返回true程序会进入if语句块。这行代码调用了scanner.nextline()方法用于读取用户输入的下一个字符串。nextline()方法会读取用户输入的内容直到遇到换行符\n 或 \r\n为止并将读取到的内容存储到变量str中。
package scanner;
import java.util.Scanner;public class demo1 {public static void main(String[] args) {Scanner scanner new Scanner(System.in); // 创建一个scanner对象用于接收键盘数据System.out.println(接收);if (scanner.hasNextLine()){ // 判断有无输入字符串String str scanner.nextLine(); // 使用next方法接收System.out.println(内容为str);}scanner.close();}
}输出结果示例
接收
hello world
内容为hello world -
其他
scanner.hasNextInt() 作用检查输入源中是否下一个数据项是整数。 返回值布尔值boolean。如果下一个数据项可以被解析为整数int 类型则返回 true否则返回 false。 特点 会跳过前面的空白符空格、制表符、换行符等。 如果输入不符合整数格式如包含字母或小数点则返回 false。
scanner.nextInt() 作用读取输入源中的下一个整数。 返回值整数int 类型。 特点 会跳过前面的空白符。 如果输入不符合整数格式会抛出 InputMismatchException 异常。 只读取一个整数不会读取换行符。
scanner.hasNextFloat() 作用检查输入源中是否下一个数据项是浮点数。 返回值布尔值boolean。如果下一个数据项可以被解析为浮点数float 类型则返回 true否则返回 false。 特点 会跳过前面的空白符。 浮点数可以包含小数点和科学计数法如 3.14 或 1.23e-10。 如果输入不符合浮点数格式如包含字母或多余的符号则返回 false
scanner.nextFloat() 作用读取输入源中的下一个浮点数。 返回值浮点数float 类型。 特点 会跳过前面的空白符。 如果输入不符合浮点数格式会抛出 InputMismatchException 异常。 只读取一个浮点数不会读取换行符
package scanner;
import java.util.Scanner;public class demo1 {public static void main(String[] args) {// 创建一个scanner对象用于接收键盘数据Scanner scanner new Scanner(System.in);int i 0;float f 0.0f;System.out.println(请输入整数);if (scanner.hasNextInt()){i scanner.nextInt();System.out.println(整数i);}else {System.out.println(输入的不是整数);}System.out.println(请输入小数);if (scanner.hasNextFloat()){f scanner.nextFloat();System.out.println(小数f);}else {System.out.println(输入的不是小数);}scanner.close();}
}输入和输出示意
请输入整数:
10
整数数据:10
请输入小数:
1.1
小数数据:1.1请输入整数:
10.1
输入的不是整数数据! // 这里会直接跳过小数部分的输入直接把10.1赋值给f
请输入小数:
10.1
小数数据:10.1
-
package scanner;
import java.util.Scanner;public class demo1 {public static void main(String[] args) { // 求和和求平均// 创建一个scanner对象用于接收键盘数据Scanner scanner new Scanner(System.in);double sum 0;int m 0;while (scanner.hasNextDouble()){double x scanner.nextDouble();System.out.println(你输入了x);m;sum x;}System.out.println(sum:sum);System.out.println(mean:(sum/m));scanner.close();}
}输入输出示例
请输入浮点数输入非数字结束
3.5
2.5
4.0
abc你输入了3.5
你输入了2.5
你输入了4.0
总和10.0
平均值3.3333333333333335
-
-
顺序结构
JAVA的基本结构就是顺序结构除非特别指明否则就按照顺序一句一句执行。
顺序结构是最简单的算法结构。 语句与语句之间框与框之间是按从上到下的顺序进行的它是由若干个依次执行的处理步骤组成的它是任何一个算法都离不开的一种基本算法结构。
package com. kuang.struct;public class shunXuDemo {public static void main(String[] args) {System.out.println(hello1);System.out.println(hello2);System.out.println(hello3);System.out.println(he1lo4);System.out.println(he11o5);}
}输出
hello1
hello2
hello3
hello4
hello5-
-
选择结构
if单选择结构
if单循环的流程如下 条件判断检查 if 语句中的条件是否为 true。 执行代码块如果条件为 true则执行 if 代码块中的语句如果条件为 false则跳过代码块继续执行后续代码。
if(布尔表达式){//如果布尔表达式为true将执行的语句
}下面的代码演示了if单循环和字符串判等的流程 读取用户输入使用 scanner.nextLine() 读取用户输入的一整行内容并存储到变量 s 中。 判断输入内容 如果用户输入的内容是 He11o则打印变量 s 的内容。 如果输入不是 He11o则跳过打印。
package scanner;
import java.util.Scanner;public class demo1 {public static void main(String[] args) {Scanner scanner new Scanner(System.in);System.out.println(请输入内容:);String s scanner.nextLine();if (s.equals(He11o)){ //equals:判断字符串是否相等System.out.println(s);}System.out.println(End);scanner.close();}
}输出示例
请输入内容:
hello
End请输入内容:
He11o
He11o
End
-
if双选择结构
现在有个需求公司要收购一个软件成功了给人支付100万元失败了自己找人开发。这样的需求用一个if就搞不定了我们需要有两个判断需要一个双选择结构所以就有了if-else结构。
if-else 双分支结构的流程可以概括为以下几步 条件判断 检查 if 语句中的条件是否为 true。 执行分支 如果条件为 true执行 if 代码块中的语句。 如果条件为 false跳过 if 代码块执行 else 代码块中的语句。 结束 执行完 if 或 else 代码块后程序继续执行后续代码。
if(布尔表达式){//如果布尔表达式的值为true
}else{//如果布尔表达式的值为false
}以下代码演示了if双选择的使用方法 读取用户输入的成绩使用 scanner.nextInt() 读取用户输入的整数并存储到变量 score 中。 判断成绩是否及格 如果 score 60打印 及格。 否则打印 不及格。
package scanner;
import java.util.Scanner;public class demo1 {public static void main(String[] args) {//考试分数大于60就是及格小于60分就不及格。Scanner scanner new Scanner(System.in);System.out.println(请输入成绩);int score scanner.nextInt();if (score60){System.out.println(及格);}else {System.out.println(不及格);}scanner.close();}
}输出示例
请输入成绩
77
及格请输入成绩
44
不及格
- if多选择结构
我们发现刚才的代码不符合实际情况真实的情况还可能存在ABCD存在区间多级判断。比如90-100就是A80-90就是B..等等在生活中我们很多时候的选择也不仅仅只有两个所以我们需要一个多选择结构来处理这类问题
if多选择的流程如下 条件判断 从第一个 if 条件开始判断。 如果 if 条件为 true执行 if 代码块中的语句然后跳到步骤5。 如果 if 条件为 false继续判断下一个 else if 条件。 依次判断 else if 条件 按顺序判断每个 else if 条件。 如果某个 else if 条件为 true执行对应的代码块然后跳到步骤5。 如果所有 else if 条件都为 false执行步骤3。 执行 else 代码块 如果所有 if 和 else if 条件都不成立执行 else 代码块。
注意事项
if 语句至多有1个 else 语句else 语句在所有的 else if 语句之后。if 语句可以有若干个 else if 语句它们必须在 else 语句之前。一旦其中一个 else if 语句检测为true其他的 else if 以及 etse 语句都将跳过执行。
if(布尔表达式 1){//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){//如果布尔表达式 3的值为true执行代码
}else {//如果以上布尔表达式都不为true执行代码
}package scanner;
import java.util.Scanner;public class demo1 {public static void main(String[] args) {//考试分数大于60就是及格小于60分就不及格。Scanner scanner new Scanner(System.in);/*if 语句至多有1个 else 语句else 语句在所有的 else if 语句之后。if 语句可以有若干个 else if 语句它们必须在 else 语句之前。一旦其中一个 else if 语句检测为true其他的 else if 以及 etse 语句都将跳过执行。*/System.out.println(请输入成绩);int score scanner.nextInt();if ( score100){System.out.println(恭喜满分);}else if (score100 score90){System.out.println(A级);}else if (score90 score80){System.out.println(B级);}else if (score80 score70){System.out.println(c级);}else if (score70 score60){System.out.println(D级);}else if (score60 score0){System.out.println(不及格);}else {System.out.println(成绩不合法);}scanner.close();}
}-
嵌套的if结构
使用嵌套的if..else语句是合法的。也就是说你可以在另一个if或者else if语句中使用if 或者else if 语句。你可以像if 语句一样嵌套else if...else。
if(布尔表达式 1){如果布尔表达式 1的值为true执行代码if(布尔表达式 2){如果布尔表达式 2的值为true执行代码}
}列如下面的代码示例中用户输入一个1-100的数字我们使用Java通过二分查找找到对应的数字二分查找属于超纲内容可以先不理解其思想
在下面的代码中我们在第一个if中嵌套了一个while见循环结构然后又在其中嵌套了一个if
package scanner;import java.util.Scanner;public class demo_sc {public static void main(String[] args) {Scanner scanner new Scanner(System.in);System.out.println(请输入一个1-100的数字);if (scanner.hasNextInt()){int x scanner.nextInt();int left 1, right100;int mid (leftright)/2;while(mid ! x){if (xmid){left mid1;mid (leftright)/2;}else{right mid - 1;mid (leftright)/2;}}System.out.println(mid);}}
}-
switch多选择结构
多选择结构还有一个实现方式就是switch case语句。
switch流程如下 计算表达式的值计算 switch 语句中表达式的值。 匹配 case 标签将表达式的值与每个 case 标签的值进行比较直到找到匹配的 case。 执行匹配的代码块从匹配的 case 标签开始执行代码直到遇到 break 语句或 switch 语句结束。 执行 default 分支可选如果没有任何 case 标签与表达式的值匹配且存在 default 分支则执行 default 分支的代码。
switch(expression){case value ://语句break; //可选case value ://语句break; //可选//你可以有任意数量的case语句default : //可选//语句
}switch case语句判断一个变量与一系列值中某个值是否相等每个值称为一个分支。switch语句中的变量类型可以是:byte、short、int或者char、string。从Java SE7开始switch支持字符串String 类型了同时case标签必须为字符串常量或字面量。
-
下面的代码演示了case穿透在 switch 语句中如果某个 case 分支没有以 break 语句结束程序会继续执行下一个 case 分支直到遇到 break 或 switch 结束。这种现象称为 case 穿透 或 case 跌落。 当 grade 的值为 c 时程序会匹配到 case c。 在 case c 中程序打印 及格但没有遇到 break 语句。 由于没有 break程序会继续执行下一个 case 分支case D打印 再接再厉。 同样case D 也没有 break程序继续执行 case E打印 挂科。
package com.kuang.struct;public class switchDemo01 {public static void main( String[] args) {//case穿透char grade c;switch (grade){case A:System.out.println(优秀);break;case B:System.out.println(良好);case c:System.out.println(及格);case D:System.out.println(再接再厉);case E:System.out.println(挂科);}}
}
如果是A输出
优秀如果是C输出因为没有break它会接着输出CDE的内容
及格
再接再厉
挂科
解决case穿透的方法也很简单加上break
switch (grade) {case A:System.out.println(优秀);break;case B:System.out.println(良好);break;case c:System.out.println(及格);break;case D:System.out.println(再接再厉);break;case E:System.out.println(挂科);break;
}
-
下面的代码演示了default即默认值如果没有选项命中便会执行default的内容
package com.kuang.struct;public class switchDemo01 {public static void main( String[] args) {//case穿透 //switch 匹配一个具体的值char grade F;switch (grade){case A:System.out.println(优秀);break; //可选case B:System.out.println(良好);case c:System.out.println(及格);case D:System.out.println(再接再厉);case E:System.out.println(挂科);default:System.out.println(未知等级);}}
}
未知等级
-
下面的代码演示了switch判断字符串的流程
从 Java 7 开始switch 语句支持字符串作为判断条件。其原理基于字符串的 hashCode() 方法和 equals() 方法。 hashCode() 方法 每个字符串都有一个哈希值通过 hashCode() 方法计算得到。switch 语句首先会计算字符串的哈希值然后根据哈希值来确定匹配的 case 分支。 equals() 方法 如果有多个 case 分支的字符串哈希值相同即发生哈希冲突switch 语句会进一步使用 equals() 方法来比较字符串是否完全相等。
package scanner;public class demo1 {public static void main(String[] args) {String name 狂神;//JDK7的新特性表达式结果可以是字符串! ! !//字符的本质还是数字//反编译 java---class (字节码文件) ----反编译 (IDEA)switch (name){ // 通过hash进行判断case 秦疆:System.out.println(秦疆);break;case 狂神:System.out.println(狂神);break;default:System.out.println(弄啥呦!);}}
}-
-
循环结构
while循环
while 循环的流程可以概括为以下几步 条件判断在循环开始之前先判断循环条件是否为 true。 执行循环体如果条件为 true则执行循环体中的代码。 重复判断条件执行完循环体后再次判断循环条件是否为 true。 循环结束如果条件为 false则退出循环继续执行循环之后的代码。
while(布尔表达式) {//循环内容
}注意事项
只要布尔表达式为true循环就会一直执行下去。我们大多数情况是会让循环停止下来的我们需要一个让表达式失效的方式来结束循环。少部分情况需要循环一直执行比如服务器的请求响应监听等循环条件一直为true就会造成无限循环【死循环】我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死奔溃!
-
下面的代码演示了使用while循环遍历5次“Hello world”步骤如下 初始化变量 i 的值为 0。 判断循环条件 i 5 是否成立。 如果条件为 true执行循环体 打印 Hello world。 将 i 的值加1i。 如果条件为 false退出循环。 重复步骤2直到 i 的值不再小于5。
package scanner;public class demo1 {public static void main(String[] args) {int i 0;while (i 5){System.out.println(Hello world);i;}}
}Hello world
Hello world
Hello world
Hello world
Hello world
-
下面的代码演示了计算123...100?步骤如下 初始化变量 i 0用于控制循环的计数器。 sum 0用于存储累加的结果。 进入 while 循环 判断条件 i 100 是否成立。 如果条件为 true执行循环体 将当前的 i 值加到 sum 中sum i。 将 i 的值加1i。 如果条件为 false退出循环。
package scanner;public class demo1 {public static void main(String[] args) {//计算123...100? int i 0;int sum 0;while (i100){sum i;i;}System.out.println(sum);}
}-
do...while循环
对于while语句而言如果不满足条件则不能进入循环。但有时候我们需要即使不满足条件也至少执行一次。
do...while循环和while循环相似不同的是do...while循环至少会执行一次。
do {//代码语句
}while(布尔表达式);While和do-While的区别:
while先判断后执行。dowhile是先执行后判断!Do...while总是保证循环体会被至少执行一次!这是他们的主要差别。
下面的代码演示了while和do-while循环的区别可见do-while一定会至少执行一次
package scanner;public class demo1 {public static void main(String[] args) {int a 0;while(a 0){System.out.println(a);a;}System.out.println();do{System.out.println(a);a;}while(a0);}
}0-
for循环
虽然所有循环结构都可以用while或者do... while表示但Java提供了另一种语句——for循环使一些循环结构变得更加简单。for循环语句是支持迭代的一种通用结构是最有效、最灵活的循环结构。
for循环执行的次数是在执行前就确定的。
整体流程
最先执行初始化步骤。可以声明一种类型但可初始化一个或多个循环控制变量也可以是空语句。然后检测布尔表达式的值。如果为true循环体被执行。如果为false循环终止开始执行循环体后面的语句。执行一次循环后更新循环控制变量(迭代因子控制循环变量的增减)。再次检测布尔表达式。循环执行上面的过程。
语法格式如下:
for(初始化语句;布尔表达式;更新语句){//代码语句
}-
下面的两段代码演示了计算0到100之间的奇数和偶数的和具体步骤如下 初始化变量 sum1 用于存储偶数之和初始值为 0。 sum2 用于存储奇数之和初始值为 0。 计算偶数之和 使用 for 循环从 0 开始步长为 2i 2循环条件为 i 101。 每次循环将当前的 i偶数加到 sum1 中。 循环结束后sum1 包含了从 0 到 100 的所有偶数之和。 计算奇数之和 使用另一个 for 循环从 1 开始步长为 2i 2循环条件为 i 101。 每次循环将当前的 i奇数加到 sum2 中。 循环结束后sum2 包含了从 1 到 100 的所有奇数之和。
package scanner;public class demo1 {public static void main(String[] args) {int sum1 0, sum2 0;for (int i 0; i 101; i2){sum1 i;}System.out.println(sum1);for (int i 1; i 101; i2){sum2 i;}System.out.println(sum2);}
}第二段代码如下
package scanner;public class demo1 {public static void main(String[] args) {int sum1 0, sum2 0;for (int i 0; i 101; i1){if (i % 2 0)sum1 i;}System.out.println(sum1);for (int i 1; i 101; i2){if (i % 2 1)sum2 i;}System.out.println(sum2);}
}-
这段代码演示了如何用for循环输出1-1000之间能被5整除的数并且每行输出3个 print输出内容后不换行。 println输出内容后自动换行。
package scanner;public class demo1 {public static void main(String[] args) {for (int i 0, j 0; i 1000; i1){if (i % 5 0) {System.out.print(i \t); // print输出完不会换行j;if (j % 3 0) {System.out.println(); // println输出完会换行}}}}
}-
下面的代码演示了如何使用for循环嵌套打印九九乘法表
package scanner;public class demo1 {public static void main(String[] args) {for (int i 1; i 10; i1){for (int j 1; j i; j1){System.out.print(i*ji*j\t);}System.out.println();}}
}-
增强for循环
Java5 引入了一种主要用于数组或集合的增强型for循环。
Java 增强for循环语法格式如下:
声明语句:声明新的局部变量该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块其值与此时数组元素的值相等。表达式:表达式是要访问的数组名或者是返回值为数组的方法。
for(声明语句∶表达式){//代码句子
}下面的代码演示了如何使用for循环遍历数组超纲内容会在数组章节详细学习可先跳过
package scanner;public class demo1 {public static void main(String[] args) {int[] numbers {10,20,30,40,50};//定义了一个数组for (int i 0;i5;i){System.out.println(numbers[i]);}System.out.println();// 方法二遍历数组的元素for (int x: numbers){System.out.println(x);}}
}输出结果
10
20
30
40
5010
20
30
40
50-
break continue
break在任何循环语句的主体部分均可用break控制循环的流程。break用于强行退出循环不执行循环中剩余的语句。(break语句也在switch语句中使用)
continue语句用在循环语句体中用于终止某次循环过程即跳过循环体中尚未执行的语句接着进行下一次是否执行循环的判定。
-
下面的代码演示了break的使用一旦触发终止循环
package scanner;public class demo1 {public static void main(String[] args) {int i0;while(i100){i;if (i % 5 0){break;}System.out.println(i);}}
}1
2
3
4-
下面的代码演示了continue的使用一旦触发跳过本轮循环进入下一轮循环
package scanner;public class demo1 {public static void main(String[] args) {int i0;while(i10){i;if (i % 5 0){continue;}System.out.println(i);}}
}1
2
3
4
6
7
8
9-
goto
关于goto关键字
goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字但并未在语言中得到正式使用;Java没有goto。然而在break和continue这两个关键字的身上我们仍然能看出一些goto的影子---带标签的break和continue。“标签”是指后面跟一个冒号的标识符例如: label:对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环由于break和continue关键字通常只中断当前循环但若随同标签使用它们就会中断到存在标签的地方。
下面的代码演示了如何使用标签 如果 i % j 0说明 i 能被 j 整除因此 i 不是质数。使用 continue outer; 跳出外层循环继续检查下一个 i。但标签如 outer在 Java 中不推荐使用因为它会使代码难以阅读和维护。可以使用布尔变量或其他逻辑来替代。
package scanner;public class demo1 {public static void main(String[] args) {// 打印100-150之间的质数outer: for (int i101;i150;i){ // 不建议使用for (int j2;ji/2;j){if (i % j 0){continue outer;}}System.out.println(i);}}
}101
103
107
109
113
127
131
137
139
149改进的代码 去掉标签使用布尔变量 isPrime 来标记是否为质数避免使用标签。 优化内层循环将内层循环的条件改为 j * j i减少不必要的计算。
package scanner;public class demo1 {public static void main(String[] args) {for (int i 101; i 150; i) {boolean isPrime true;for (int j 2; j * j i; j) { // 只检查到 sqrt(i)if (i % j 0) {isPrime false;break; // 不需要继续检查}}if (isPrime) {System.out.println(i);}}}
}
-
练习
打印如下所示的三角形固定5行 *************************答案
package scanner;public class demo1 {public static void main(String[] args) {//打印三角形 5行for (int i 1; i 5; i) {for (int j 5; j i ; j--) {System.out.print( );}for (int j 1; j i ; j) {System.out.print(*);}for (int j 1; j i; j) {System.out.print(*);}System.out.println();}}
}然后可以试试设置行数的打印
答案
package scanner;public class demo1 { public static void main(String[] args) {int len 7;for (int i 1; i len; i) {for (int i1 len; i1 i; i1--) {System.out.print( );}for (int i1 0; i1 2 * i - 1; i1) {System.out.print(*);}System.out.println();}}
}-
- 感谢您的支持
如果您觉得我的内容有价值或者对您有所帮助希望您能给我一个小小的鼓励 点赞让我知道您喜欢我的内容 关注第一时间获取更多有趣、有用的信息 ⭐️ 收藏方便您随时回顾也方便分享给更多需要的人
您的支持是我不断进步的动力感谢您抽出宝贵的时间阅读祝您生活愉快万事顺心✨