JavaSE_流程控制
2021/5/3 20:25:30
本文主要是介绍JavaSE_流程控制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.Scanner
1.1用户交互Scanner
- java.util.Scanner是Java5的新特性,我们可以通过Scanner类来获取用户的输入
- 基本语法:
Scanner s = new Scanner(System.in);
- 可以通过Scanner类的next()与nextLine()方法获取用户输入的字符串,在读取前一般要使用hasNext()与hasNextLine()判断是否还有输入的数据
Scanner的用法:
import java.util.Scanner;//导入Scanner类 public class Demo{ public static void main(String[] args){ Scanner s1 = new Scanner(System.in);//将Scanner对象实例化(创建Scanner对象(s1)) int num = s1.nextInt();//调用Scanner的nextInt()方法,从控制台获取int类型的数 s1.close();//用完记得关闭 } }
1.2Scanner进阶使用
- 读取前一般要使用hasNext()与hasNextLine()判断是否还有输入的数据,这个的实现就是下面的
使用hasNext()与hasNextLine()判断是否还有输入的数据
import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner s1 = new Scanner(System.in); int i = 0; System.out.println("请输入一个int类型的数据"); if(s1.hasNextInt()){ i= s1.nextInt(); }else{ System.out .println("你要输入int类型数据"); } System.out.println(i); s1.close(); } }
Scanner的进阶用法
import java.util.Scanner; public class Demo{ public static void main(String[] args){ Scanner s1 = new Scanner(System.in); while(s1.hasNextDouble()){ Double num = s1.nextDouble(); } s1.close(); } }
2.顺序结构
- Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行
- 顺序结构是最简单的算法结构
- 语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干个一次执行的处理步骤组成的,他是任何一个算法都离不开的一种基本算法结构。
3.选择结构
3.1if-else
- 语句结构:
if(布尔表达式2){ 语句或语句块; //当布尔表达式1是true时,走这里 }
为了便于理解,直接上图:
if(布尔表达式2){ 语句或语句块; //当布尔表达式1是true时,走这里 }else if(布尔表达式2){ 语句或语句块; //当布尔表达式2是true时,走这里 }else{ 语句或语句块; //当都不满足时,走这里 }
还是为了便于理解,直接上图:
3.2Switch
- 语句结构:
switch(变量名){ case 常量1: 语句或语句块; break case 常量2: 语句或语句块; break; }
还是一样,直接上图理解:
4.循环
4.1while
- 语句结构:
while(布尔表达式){ 语句或语句块; }
继续上图:
4.2do-while
- 语句结构
do{ 语句或语句块; }while(布尔表达式);
不说了,上图:
4.3for
4.3.1for
- 语句结构:
for(初始化表达式;布尔表达式;更改表达式){ 语句或语句块; }
不废话,上图:
4.3.2for-each(增强for)
增强for循环不需要用到下标
for(数组类型 变量名:数组或集合对象){ //语句或语句块 }
5.break&continue
break&continue
break
break使用说明:
- break在任何循环的语句体中,均可用break控制循环的流程。break用于强制退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)。
break应用实例:
public class TestBreak{ public static void main(String [] args){ for(int i = 0;a<=100;a++){ if(i==50){ break; } System.out.println(i); } } }
然后输出结果是这样的:
1 2 3 4 ······· 48 49 然后····就没有然后了,因为到这里i==50这个条件满足,进入if语句,执行break,这个for循环已经被终止了。
break使用的注意事项:
- break语句后不能再有语句,因为此语句永远不会被执行。
public class TestBreak{ public static void main(String [] args){ for(int i = 0;i<=100;i++){ if(i==50){ break; System.out.println(a); //此条语句永远都不会被执行 } } System.out.println("Hello!") //当然这一条语句会被执行,因为break终止的只是它所在的循环,而不是整个程序 } }
不相信???自己去试!!!
continue
continue使用说明:
- continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
continue应用实例 :
public class TestContinue{ public static void main(String [] args){ for(int i = 0;a<=100;a++){ if(i==50){ continue; } System.out.println(i); } } }
然后输出结果是这样的:
1 2 3 4 ······· 48 49 51 //这里满足了i==50的条件,进入if语句,执行continue跳过了此次循环。 52 ······· 99 100
continue使用的注意事项:
——和break的注意事项一样
public class Test{ public static void main(String [] args){ for(int i = 0;i<=100;i++){ if(i==50){ continue; System.out.println(a); //此条语句永远都不会被执行 } } System.out.println("Hello!") //当然这一条语句也是会被执行. } }
关于goto关键字
- goto关键字很早以前就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式的使用:Java没有goto。然而,在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子···带标签的break和continue。
带标签的关键字
- 标签只后面跟一个冒号的标识符,例如:label:
- 对Java来说唯一用到标签的地方就是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前的循环,但若随标签使用,他们就会中断到存在标签的地方。
——标签的名字是可以随便取的,但是要遵守命名规范。
public class TestBreak{ public static void main(String [] args){ label1:for(int a = 0;a<=100;a++){ System.out.println(a); label2:for(int b =0;b<=100;b++){ for(int c = 0;c<=100;c++){ System.out.println(c); break label1; //它会直接从自身所处的循环一直中断知道中断了带有所属标签的循环 } } } } }
break和continue的区别
-
break用于退出循环
-
continue用于跳过本次循环
不懂???没关系——上图(本人画的草图)↓↓↓
6.实例
打印九九乘法表
public class Demo { public static void main(String[] args){ for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System.out.print(j+"X"+i+"="+(j*i)+"\t"); } System.out.println(); } } }
这篇关于JavaSE_流程控制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-04百万架构师第六课:设计模式:策略模式及模板模式
- 2025-01-04百万架构师第七课:设计模式:装饰器模式及观察者模式
- 2025-01-04适用于企业管理的协作工具API推荐
- 2025-01-04挑战16:被限流的CPU
- 2025-01-03企业在选择工具时,如何评估其背后的技术团队
- 2025-01-03Angular中打造动态多彩标签组件的方法
- 2025-01-03Flask过时了吗?FastAPI才是未来?
- 2025-01-0311个每位开发者都应知道的免费实用网站
- 2025-01-03从REST到GraphQL:为什么以及我是如何完成转型的
- 2025-01-03掌握RAG:从单次问答到连续对话