Java流程控制
2021/6/19 1:27:17
本文主要是介绍Java流程控制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java流程控制
用户交互Scanner
我们可以通过Scanner类来获取用户的输入
Scanner的使用
语法:
Scanner s =new Scanner(System.in);
通过Scanner类的next()与nextline()来获取输入的字符串,在读取数据前一半用hasNext()与hasNextLine()判断是否还有输入的数据
在使用Scanner类前,需导入Scanner类
import java.util.Scanner
Scanner scanner = new Scanner(System.in);//创建一个扫描器对象用于接收键盘数据 System.out.println("使用next方法接收");//用于提示用户输入数据 String a =scanner.next();//定义一个字符串a来接收用户输入数据 //在输入数据前,程序不会停止,而是会在这里等待用户输入完毕 System.out.println("输入的内容为"+a);//在这里输出用户输入的内容 scanner.close();//凡是属于IO流的类如果不关闭会一直占用资源,要养成习惯用好就关
Scanner对象
-
next()
-
一定要读取到有效字符才能结束输入
-
对输入有效字符前遇到的空白,next()方法会自动将其去掉
-
只有输入有效字符后才能将后面输入的空白作为分隔符或结束符
-
next()不能得到带有空格的字符串
-
-
nextLine()
-
以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
-
使用nextLine()方法可以获得空白
-
Scanner的进阶使用
Scanner类下还有许多输入方法,如nextInt()、nextDouble()
利用这些方法,可以输入用户的各种数据
Scanner a =new Scanner(System.in);//定义一个扫描器,用于接收用户输入数据 int m =0;//定义一个int数,用于计算接收多少个数据 double c = 0.0;//定义一个double数,用于计算接收数据的总和 while(a.hasNextDouble()){//用于接收用户输入的数字数据 m++;//每输入一个数据,数据个数+1 double b = a.nextDouble();//定义一个变量,用于收集用户输入数据 System.out.println("你已输入"+m+"个数据");//用于提示输入的数据个数 c+=b;//用于计算接收数据总和 System.out.println("总数为"+c);//输出当前接收数据总和 System.out.println("平均数为"+c/m);//输出当前接收数据的平均数 } System.out.println("程序结束");//一旦输入数字以外的数据,用于提示用户程序停止 a.close();//关闭IO流,节省资源
结构
顺序结构
Java最基本的结构就是顺序结构,除非特别指明,否则将按照顺序一句一句执行
它是任何一个算法都离不开的一种基本算法结构
选择结构
if单选择结构
语法:
if(布尔表达式){ //如果布尔表达式为true将执行的语句 }
if双选择结构
语法:
if(布尔表达式){ //布尔表达式结果为true时执行的语句 }else{ //布尔表达式结果为false时执行的语句 }
if多选择结构
语法:
if(布尔表达式1){ //布尔表达式1的值为true,则执行该语句 }else if(布尔表达式2){ //布尔表达式2的值为true,则执行该语句 }else if(布尔表达式3){ //布尔表达式3的值为true,则执行该语句 }else{ //如果以上布尔表达式的值都不为true,则执行该语句 }
嵌套的if结构
语法:
if(布尔表达式1){ //如果布尔表达式的值为true,则执行该语句 if(布尔表达式2){ //如果布尔表达式的值为true,则执行该语句 } }
switch多选择结构
switch case语句判断一个变量与一系列值中某个值是否相等,每一个值都是一个分支
语法:
switch(表达式){ case value1://如果为值1,则执行该语句 //语句 break;//用于结束循环,可选 case value2://如果为值2 ,则执行该语句 //语句 break;//结束循环,可选 default://若以上值都没有,则执行该语句,可选 //语句 }
switch语句中的变量类型可以是:
- byte、short、int或者char
- 从Java SE7开始,switch支持字符串string类型
- case标签必须为字符串常量或字面量
注意:
- case语句具有穿透性,如果没有break语句结束循环,在case语句匹配到相应的值后,会将接下来的没有break语句的case语句输出,直到有break语句的case语句
循环结构
while循环
while循环时最基本的循环
语法:
while(布尔表达式){ //循环内容 }
注意:
- 只要布尔表达式的值为true,循环就会一直执行下去
- 大多数情况下,我们会让循环停止下来,因此需要一个让表达式值为false的方式来结束循环
- 少数情况下需要循环一直执行,如检查服务器是否响应
- 循环条件一直为true则会造成死循环,一般应避免死循环,导致程序卡死崩溃
do...while循环
do...while循环与while循环相似,不同的是,do...while训话至少会执行一次
语法:
do{ //代码语句 }while(布尔表达式)
do...while和while的区别:
- while先判断后执行,do...while先执行后判断
- do...while总是保证循环体至少被执行一次,这是他们的主要差别
For循环
for循环语句是支持迭代的一种通用结构,**是最有效、最灵活的循环结构
语法:
for(初始化;布尔表达式;更新){ //代码语句 }
for循环中的语句可以是空语句
for(;;){//这是一个死循环 }
增强for循环
主要用于数组或集合
语法:
for(声明语句:表达式){ //代码语句 }
- 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配,作用域限定在循环语句块,其值与此时数组元素的值相等
- 表达式:表达式时要访问的数组名,或者是返回值为数组的方法
)
break&continue
break在任何循环语句的主体部分,均可用break控制循环的流程,break用于强制退出循环,不执行循环中剩余的语句
continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定
这篇关于Java流程控制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)