2.流程控制
Posted 付宇泽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.流程控制相关的知识,希望对你有一定的参考价值。
Scanner对象
-
java.util.Scanner 是Java5的新特性,可以通过Scanner类来获取用户的输入
-
基本语法
Scanner s = new Scanner(System.in);
-
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
-
next():
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next()不能得到带有空格的字符串
import java.util.Scanner; public class Demo01 { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); //Hello World System.out.println("使用next方式接收:"); //判断用户有没有输入字符串 if (scanner.hasNext()){ //使用next方式接收 String str = scanner.next(); System.out.println("输出的内容为:"+str); //Hello } //凡是属于IO流的类如果不关闭会一直占用资源 scanner.close(); } }
-
nextLine():
- 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
- 可以获得空白
import java.util.Scanner; public class Demo01 { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); //Hello World String str = scanner.nextLine(); System.out.println("输出的内容为:"+str); //Hello World } } }
-
Next+类型:
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int i = 0; float f = 0.0f; if (scanner.hasNextInt()){ i = scanner.nextInt(); }else if(scanner.hasNextFloat()){ f = scanner.nextFloat(); } System.out.println("整数:" + i); System.out.println("小数:" + f); scanner.close(); }
顺序
从上到下依次执行,是任何一个算法都离不开的一种基本算法结构。
选择结构
-
if单选择结构
-
if双选择结构
-
if多选择结构
-
嵌套的if结构
-
switch多选择结构
-
switch语句中的变量类型可以是
- byte、short、int或者是char
- Java SE 7开始 支持switch字符串String类型
- case标签必须为字符串常量或字面量
public static void main(String[] args) { char grade = \'C\'; switch (grade){ case \'A\': //操作 break; case \'B\': case \'C\': case \'D\': case \'E\': default: } }
-
循环结构
-
while循环
while(布尔表达式){ }
-
do…while循环
do{ }while(布尔表达式)
-
for循环
for(初始值;布尔值;迭代){ }
-
Java5中引入主要用于数组的增强型for循环
- 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
- 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
for(声明语句 : 表达式){ }
标签
标签与continue, break结合使用可以跳到标签设定位置
//打印101-150所有质数
outer:for(int i = 101;i<150;i++){
for(int j = 2;j<i/2;j++){
if (i % j == 0){
continue outer;
}
}
System.out.print(i+" ")
}
以上是关于2.流程控制的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程
全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段
Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段
Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段