用户交互Scanner
- 可以通过Scanner类来获取用户的输入
- 基本语法:
// 创建一个扫描器对象,用于接收数据
Scanner s = new Scanner(System.in);
if(s.hasNextLine()){
//if(s.hasNext()){
//使用next方式接收
//String str = s.next();
String str = s.nextLine();
System.out.println("输出内容::"+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源,要养成良好习惯
s.close();
- 通过Scanner类的next()和nextLine()方法获取输入的字符串,用hasNext()与hasNextLine()判断是否还有输入的数据
接收字符串:next和nextLine
next:next不能接收带有空格的字符串(有效字符前的空格会被去除)
nextLine:以回车结束,可以接收回车前的所有字符。可以接收空格
接收整数:nextInt
//判断输入类型
if(s.hasNextInt()){
int num = s.nextInt();
System.out.println(num);
}else {
System.out.println("输入的不是小数");
}
//输入多个数
while(s.hasNextInt()){
int num = s.nextInt();
System.out.println(num);
}
顺序结构
一行一行按顺序运行
选择结构
if单选择结构
if(布尔表达式){
布尔表达式为True执行
}
if双选择结构
if(布尔表达式){
布尔表达式为True执行
}else{
布尔表达式为false执行
}
if多选择结构
if(布尔表达式1){
布尔表达式1为True执行
}else if(布尔表达式2){
布尔表达式2为True执行
}else{
布尔表达式都为false执行
}
switch多选择结构
- 判断一个变量与一个系列值中的某个是否相等
- 变量类型(如下expression)可以是byte、short、int、char、String,也可以是一个已声明的变量
switch(expression){
case value1 :
//语句
break;
case value2 :
//语句
break;
default:
//语句
}
- Sring作为switch语句的变量时,利用的是对String值的哈希值进行比较。(有IDEA的反编译功能能看出)
循环结构
while循环
- 尽量避免死循环
- 基本结构
while(布尔表达式){
}
do...while循环
- 基本结构
do{
//代码语句
}while(布尔表达式);
- do....while先执行后判断,while先判断后执行
for循环 - 基本结构
for(初始化;布尔表达式;更新){
//执行语句
}
//可以初始化一个或多个循环控制变量,也可以是空语句
增强for循环
- 主要用于数组或集合的增强型for循环
- 基本结构
for(声明语句 : 表达式){
//代码句子
}
// 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。
// 表达式:表达式是要访问的数组名,或者返回值为数组的方法
// 样例:
int[] numbers = {10,20,30,40,50};
for(int x:numbers){
System.out.println(x);
}
break continue
- break用于强制退出循环
- continue用于终止某次循环过程,即跳过循环体中尚未执行的语句。