Java流程控制
01-用户交互Scanner
Scanner对象
java.util.Scanner
,可以通过Scanner类来获取用户的输入- 基本语法
Scanner s = new Scanner(System.in);
- 通过Scanner类的
next()
与nextLine()
方法获取输入的字符串,在读取前一般需要使用haasNext()
与hasNextLine()
判断是否还有输入的数据
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
//通过System.in接收用户的输入,并且把它封装成scanner对象
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收");
//判断用户有没有输入字符串
if(scanner.hasNext()){
//使用next方式接收
String str = scanner.next(); //程序会等待用户输入完毕
System.out.println("输入的内容为:"+str);
}
//属于IO流的类使用完成后要关掉,否则会占用资源
scanner.close();
}
}
- next()方法:
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的空白,
next()
方法会自动将其去掉 - 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
next()
不能得到带有空格的字符串
- nextline()方法:
- 以Enter为结束符,也就是说
nextLine()
方法返回的是输入回车之前的所有字符- 可以获得空白
- 以Enter为结束符,也就是说
02. 顺序结构
-
定义:
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行
-
举例:
/*
* 顺序结构:从上往下,依次执行
*/
public class OrderDemo {
public static void main(String[] args) {
System.out.println("开始");
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("结束");
}
}
03. 选择结构
- if选择结构
if(条件){
代码块 //条件成立之后要执行的代码,可以是一条语句,也可以是一组语句
}
- if-else选择结构
if(条件){
//代码块1
}else{
//代码块2
}
- 多重if选择结构
if(条件1){
//代码块1
}else if(条件2){
//代码块2
}else{
//代码块3
}
- 嵌套if选择结构
if(条件1){
if(条件2){
//代码块1
}else{
//代码块2
}
}else{
//代码块3
}
04. switch选择结构
switch(表达式){
case 常量1:
//代码块1;
break;
case 常量2:
//代码块2;
break;
... ...
default:
//代码块n;
break;
}
-
注意:
- 为了防止case穿透问题,一般在使用switch语句时都必须加上break(跳出),否则case下余的代码也会被编译执行,就毫无意义)
- 在JDK7之后的版本,switch语句还支持String类型,也就是说case后面的值不仅可以为数字,也可以为字符/字符串等。但是如果使用float与double会出现丢失精度的问题)
-
case穿透的理解:
当条件表达式计算完成后,程序开始执行,如果结果为1,则执行case1的代码块1。当代码块1执行完毕后,程序还会继续执行case2的代码块2,直至执行完所有case。
05. 循环结构
while循环
while(布尔表达式) {
//循环内容
}
只要布尔表达式为 true,循环就会一直执行下去