java流程控制
2021/5/12 14:25:26
本文主要是介绍java流程控制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
java流程控制
用户交互scanner
-
之前学的基本语法中还并没有实现程序和人的交互,java提供了这样一个交互类,我们可以获取用户的输入。 java.util.Scanner(工具包)是java5的新特性。即可以通过Scanner类类获取用户输入。
-
基本语法
Scanner s = new Scanner (System.in); //System out输出,System in输入
- 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
-
- 如果输入的命令为next,则输出的结果为下一个字符,而输入的命令为nextLine时,输出的结果为下一个字符串,即下一句话,下一行
- 输入next
package com.shusheng01.scanner; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("使用next方式接收"); //判断用户有没有输入字符串 if (scanner.hasNext()==true){ //使用next方式接收 String str =scanner.next();//程序会等待用户输入 System.out.println("输入的内容为:"+str); } //凡是属于IO流的类如果不关闭,会一直占用资源,要养成好习惯用完关掉 scanner.close();//关闭scanner /* 使用next方式接收 hello world(输入的字符串) 输入的内容为:hello(输出以后的字符) Process finished with exit code 0 */ } }
- 输入nextLine
package com.shusheng01.scanner; import java.util.Scanner; public class Demo02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //从键盘接收数据 System.out.println("使用nextLine方式接收"); if (scanner.hasNextLine()) { //判断用户是否还有输入 String str = scanner.nextLine(); //等待用户输入 System.out.println("输出的内容为:"+str); /* 使用nextLine方式接收 hello world 输出的内容为:hello world Process finished with exit code 0 */ } scanner.close(); } }
- next和nextLine的区别
next:
- 一定要读取到有效字符后才可以结束输入,否则程序不停止,且要在结尾加 scanner.close();
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
- next()不能得到带有空格的字符串
nextLine:
- 以Enter(回车)为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
- 可以获得空白
- 接收数据并且用if语句判断
package com.shusheng01.scanner; import java.util.Scanner; public class Demo04 { public static void main(String[] args) { 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(); /* 请输入整数: 30 整数数据:30 请输入小数: 35 小数数据:35.0 Process finished with exit code 0 */ } }
求和及平均数:
package com.shusheng01.scanner; import java.util.Scanner; public class Demo05 { public static void main(String[] args) { System.out.println("请输入数据"); //我们要输入多个数字,并且求其总和与平均数,每输入一个数字 //用回车键确认,通过输入非数字来结束输入并且输出执行结果 Scanner scanner =new Scanner(System.in); //求和 double sum = 0; //计算输入了多少个数字 int m = 0; //通过循环判断是否还有输入,并且在里面对每一次进行求和统计 while (scanner.hasNextDouble()){ double x = scanner.nextDouble(); //输入一个数x m = m+1; sum = sum +x; System.out.println("你输出了第"+m+"个数据,当前结果为"+sum); } System.out.println("共输入"+m+"个数据"); System.out.println(m+"个数的和为"+sum); System.out.println(m+"个数的平均数为"+(sum/m)); scanner.close(); /* 请输入数据 10 你输出了第1个数据,当前结果为10.0 20 你输出了第2个数据,当前结果为30.0 30 你输出了第3个数据,当前结果为60.0 40 你输出了第4个数据,当前结果为100.0 55 你输出了第5个数据,当前结果为155.0 60 你输出了第6个数据,当前结果为215.0 70 你输出了第7个数据,当前结果为285.0 60 你输出了第8个数据,当前结果为345.0 8888 你输出了第9个数据,当前结果为9233.0 x 共输入9个数据 9个数的和为9233.0 9个数的平均数为1025.888888888889 Process finished with exit code 0 */ } }
顺序结构
- java的基本机构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行
- 顺序结构是最简单的算法结构
- 语句与语句之间,框与框之间是按从上到下的顺序进行的,他是由若干个一次执行的处理步骤组成的,他是任何一个算法都离不开的一直基本算法结构。
选择结构
if单选择结构
if双选择结构
if多选择结构
嵌套的if结构
switch多选择结构
if单选择结构
很多时候判断一个东西是否可行,然后再去执行,这样一个过程在程序中用if语句来表示
if(布尔表达式){ //如果布尔表达式为true将执行的语句 }
package com.shusheng01.struct; import java.util.Scanner; public class ifDemo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入内容"); String s = scanner.nextLine(); //equals:判断字符串是否相等 if (s.equals("Hello")){ System.out.println(s); } System.out.println("END"); scanner.close(); } }
if双选择结构
即:A计划行不通,则进行B计划
if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的值为false }
package com.shusheng01.struct;import java.util.Scanner;public class IfDemo02 { public static void main(String[] args) { //考试分数大于60分及格,小于60分不及格 Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩"); int score = scanner.nextInt(); if (score>60){ System.out.println("及格"); }else { System.out.println("不及格"); }/* 请输入成绩78及格Process finished with exit code 0*/ }}
if多选择结构
当问题有多个选项的时候使用多选择结构
if(布尔表达式1){ //如果布尔表达式1的值为true执行代码}else if(布尔表达式2){ //如果布尔表达式2的值为true执行代码}else if(布尔表达式3){ //布尔表达式3的值为true执行代码}else{ //如果以上布尔表达式的值都不为true执行代码}
package com.shusheng01.struct;import java.util.Scanner;public class IfDemo03 { public static void main(String[] args) { /*考试分数大于60及格 考试分数小于60不及格 考试分数大于80优秀 考试分数小于40差劲 */ Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩"); int score = scanner.nextInt(); if (score>80){ System.out.println("优秀"); }else if (score>60){ System.out.println("及格"); }else if (score==60){ System.out.println("不及格"); }else if (score>=0 && score<=40){ System.out.println("叫家长"); } scanner.close(); /*请输入成绩33叫家长Process finished with exit code 0 */ }}
这篇关于java流程控制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-04TiDB 资源管控的对撞测试以及最佳实践架构
- 2024-07-03万字长文聊聊Web3的组成架构
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 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的分布式主键实现