文章目录
- 前言
- 一、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~90else 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文件