文章目录
- 前言
- 一、Scanner类
- 1. hasNext()和hasNextLine()
- 2.next()和nextLine()
- 3. Scanner的其他用法
- 二、顺序结构
- 三、选择结构
- 1. if单选择结构
- 2. if-else双选择结构
- 3. if-else if多选择结构
- 4. switch选择结构
- 四、循环结构
- 1. while循环
- 2.do while循环
- 3. for循环(常用)
- 五、小知识:
前言
前面几篇文章学习了java的基础语法,本篇文章将带领大家学习编程的核心:程序控制结构。学会了顺序、选择、循环三种基本的结构之后,我们就可以写一些正式的程序了
一、Scanner类
之前我们学习的基础语法中,数据都是写死的,没有实现程序与人的交互。在Java中,我们用Scanner对象来获取并存储用户从键盘上输入的数据。
语法:Scanner s = new Scanner(System.in);
import java.util.Scanner;//import导入Scanner包
public class Scanner1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请你任意输入一个字符");
//判断用户有没有输入字符串
if (input.hasNext()){
//使用next()方法接收
String a = input.next();
System.out.println("Hello Wold!"+a);
}
//凡是属于IO流的类不关闭就会一直占用资源,要养成良好习惯,用完就回收。
input.close();
}
}
1. hasNext()和hasNextLine()
hasNext()方法:判断接下来是否有非空字符.如果有,则返回true,没有则阻塞。(回车属于空字符)
hasNextLine()方法:根据行匹配模式去判断接下来是否有一行(包括空行),如果有,则返回true。(敲了回车都是true)
2.next()和nextLine()
作用:监听用户键盘输入的行为
选择哪一个:与变量的数据类型保持一致
注意:next()不能得到带有空格的字符串
3. Scanner的其他用法
Scanner input = new Scanner(System.in);
int i = 0;
float f = 0.0f;
System.out.println("请输入整数");
if(input.hasNextInt()){
i = input.nextInt();
System.out.println("整数数据:"+i);
}else{
System.out.println("输入的不是整数数据");
}
System.out.println("请输入小数");
if(input.hasNextFloat()){
f = input.nextFloat();
System.out.println("小数数据:"+f);
}else{
System.out.println("输入的不是小数数据");
}
二、顺序结构
按照程序从上到下、从左到右依次执行
顺序结构是最基本的控制流程,也是程序默认的执行方式。
三、选择结构
1. if单选择结构
- 语法:
if(条件表达式){
执行的语句
}
2. if-else双选择结构
if(条件表达式){
}else{
}
3. if-else if多选择结构
if(条件表达式){
}else if(条件表达式){
}else if(条件表达式){
}else{
}
Scanner input = new Scanner(System.in);
double score = input.nextDouble();
//else if:除了if()以外的范围里比较
if(score==100){
System.out.println("恭喜你,考了满分,你真棒");
}
//比较范围:99~90
else if(score>=90){
System.out.println("A");
}else if(score>=80){
System.out.println("B");
}else if(score>=60){
System.out.println("c");
}else {
System.out.println("D");
}
4. switch选择结构
switch ( expression ){
case 常量1:
语句1;
//跳出选择,不再执行后面的语句
break;
case 常量2:
语句2;
break;
//其他
default:
语句;
break;
}
switch 语句会先计算表达式的值
注意:
- switch 语句中的 expression 是一个常量表达式,必须是一个整型或枚举类型。
- 每个语句都要加上break,否则会继续执行下一语句,不会跳出。
Scanner input = new Scanner(System.in);
String grade = input.next();
switch (grade){
case "A":
System.out.println("优秀");
break;
case "B":
System.out.println("良好");
break;
case "C":
System.out.println("及格");
break;
default:
System.out.println("不合格");
}
四、循环结构
1. while循环
//循环打印1~100;
int i = 1;//初始化
//布尔表达式
while(i<=100){
System.out.println(i);
i++;更新
}
//基本结构
while(布尔表达式) {
循环体;
}
2.do while循环
do while循环跟while循环唯一的区别是:while条件的先置与后置;
//基本结构
do {
循环体;
}whlie(布尔表达式);
3. for循环(常用)
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
//基本结构
for(初始化;布尔表达式;更新){
循环体;
}
for (int i = 0; i <= 100; i++) {
System.out.println(i);
}
五、小知识:
反编译class文件