一、用户交互Scanner
java.util.Scanner 类用来获取用户得输入(Java5新特性)
基本语法:
Scanner s = new Scanner(System.in);
注1: 可以通过Scanner类的next() 和 nextLine() 方法来获取输入的字符串,但在读取前一般需要使用 hasNext() 与 hasNextLine() 判断是否还有输入的数据
2: 还能通过 hasNextInt - nextInt() 判断是否是整数,Float、Double…都行
https://www.oracle.com/java/technologies/javase-jdk11-doc-downloads.html
https://docs.oracle.com/en/java/javase/11/docs/api/index.html
Scanner对象:
- next()
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
- 只有输入有效字符才将其后面输入的空白作为分隔符或者结束符
- 所以 next()不能得到有空格的字符串
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收: ");
//判断用户有没有输入字符串
//输入hello world ,输出 hello
if(scanner.hasNext()){
//使用next方式接受
//程序会等待用户输入完毕
String str = scanner.next();
System.out.println("输入的内容为: "+ str);
}
//好习惯:关闭扫描器
//凡是属于IO流的类如果不关闭会一直占用资源,所以用完要关闭
scanner.close();
- nextLine()
- 以回车Enter为结束符,所以会返回输入回车之前的所有字符
- 可以获得空白
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方式接收: ");
//输入hello world ,输出 hello world
if(scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println("输入的内容为: "+ str);
}
scanner.close();
Alt + Enter 默认变量
二、逻辑结构
2.1 顺序结构
Java的基本结构就是顺序结构,除非特别指明,否则就按照从上到下顺序一句一句执行
2.2 选择结构
- if 单选择结构
语法:
if(布尔表达式){
//如果布尔表达式为true则进入并开始执行语句
}
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容: ");
String s = scanner.next();
//equals 判断字符串受否相等
if(s.equals("hello")){
System.out.println(s);
}
System.out.println("End");
- if 双选择结构
if(布尔表达式){
//如果布尔表达式为true则进入并开始执行语句
}else{
//如果尔表达式为false
}
- if 多选择结构
if(布尔表达式1){
//如果布尔表达式1为true则进入并开始执行语句
}else if(布尔表达式2){
//如果尔表达式1为false,而布尔表达式2为true
}else if(布尔表达式3){
//如果尔表达式2为false,而布尔表达式3为true
}else{
//如果尔表达式3为false,则进入并开始执行代码
}
- 嵌套的 if 结构
if(布尔表达式1){
//如果布尔表达式1为true则进入并开始执行语句
if(布尔表达式2){
//如果布尔表达式2为true则进入并开始执行语句
}
}
- switch 多选择结构
- switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
- case 标签必须是字符串常量或字面量(byte、int 、short、char、String(JDK7新特性))
- 注意 case穿透现象——解决:每写一个case增加break
swicth(expression){
case value1:
//语句
break;//可选
case value2:
//语句
break;//可选
default://可选
//语句
}
shift + Tab 取消缩进
附加:
- 反编译(IDEA)【一般 java----class(字节码文件)】
- 字符的本质还是数字——hashcode
Ctrl + Alt + Shift + s 得到项目结构


IDEA 2022版本【不太清晰其中的奥秘】

2019版本【很好】

2.3 循环结构
- while循环
while(布尔表达式){
//循环内容
}
- do…while循环
do{
//代码语句
}while(布尔表达式)
注: while 和 do-while的区别:
- while先判断后执行,而do-while先执行后判断;
- do-while 总是保证循环体会被至少执行一次【主要差别】
3.for循环
支持迭代的一种通用结构,是最有效的、最灵活的循环结构
for(初始化;布尔表达式;更新){
//代码语句
}
快捷语句:100.for
- 首先,执行初始化步骤:可以声明一种类型,但可以初始化一个或多个循环控制变量,也可以是空语句
- 然后,检测布尔表达式的值:如果为true,循环体被执行;如果为false,循环终止
- 执行一次循环后,更新循环控制变量
4.增强for循环(JDK5新特性)
for(声明语句:表达式){
//代码语句
}
- 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配
- 表达式:要访问的数组名,或者返回值为数组的方法
2.4 break & continue
- break: 用于强行退出循环, 不执行循环中剩余的语句
- continue:用于终止某次循环过程, 跳过循环体中尚未执行的语句
另: 标签的使用【不建议】
public static void main(String[] args) {
//打印 101-150之间的质数
int count = 0;
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 + "\t");
}
}
版权声明:本文为qq_45022770原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。