1.两个常用工具类
(1)(Scanner) 键盘录入可以允许用户在程序运行过程中向程序输入数据,达到人机交互的效果,提高用户体验度。
1. 导包 ( import java.util.Scanner; ) 告诉程序这个工具在何处
2. 创建对象( Scanner sc = new Scanner(System.in); ) 创建工具
3. 获取数据 ( int num = sc.nextInt(); ) 使用工具获取数据
sc.next(); 接收用户输入的字符串,从有效字符开始接收(非空格),知道遇到enter才能结束功能,但是接收过程中如果遇到空格,就停止接收,但是功能不会结束。
sc.nextLine(); 接收用户输入的一整行字符串
4.关闭(可写可不写)
sc.close();
使用当前类中完全使用完毕之后进行关闭,以便于回收资源。
//实例代码
//1.导入包
import java.util.Scanner;
public class Test{
public static void main(String[] args){
//2.创建对象获取工具
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的年龄:");
//3.使用工具
int age = sc.nextInt();
if(age<18){
System.out.println("小屁孩一个");
}else{
System.out.println("成年人了,惹不起,惹不起");
}
//4.关闭工具(可写可不写)
sc.close();
}
}
(2)Random
Math 类提供了一个名叫 random 的方法, 可以随机生成 [0,1) 之间的任意double类型的数据。
nextInt(整数n) 产生int类型的[0,n)整数
nextDouble() 产生一个double类型 的随机小数-->[0.0,1.0)
总结公式:
产生某一个范围内的随机整数
1. [0,max] -> ran.nextInt(max+1)
2.[min,max] -> ran.nextInt(max-min+1)+min
3.[min,max) -> ran.nextInt(max-min)+min
//实例代码
import java.util.Random;
public class Test1{
public static void main(String[] args){
//1.导包
//2.创建Random类型的引用
Random ran = new Random();
//3.生成int范围的随机整数
int num1 = ran.nextInt();
System.out.println(num1);
2.流程控制语句
流程控制语句分为:顺序结构 : 从上到下,从左到右-->默认
选择结构 : 满足条件执行对应的代码
循环结构 : 让一些代码重复不停的执行多次
1.选择结构
(1)if选择(分为三种)
if单选泽|单分支
if(条件表达式){
满足条件执行的代码段;
}
条件表达式 : 必须为一个值为boolean的表达式
执行流程:
1.计算条件表达式
2.如果结果为true,执行{}中的语句体
3.如果结果为false,就直接跳过if结构
if-else双选择|双分支
if(条件表达式){
满足条件执行的代码段;
}else{
不满足条件执行的代码段;
}
注意: 双选择一定能够执行语句体|一定能够得到结果
if-else if 多选择|多分支
if(条件表达式1){
满足条件表达式1执行的语句体1;
}else if(条件表达式2){
满足条件表达式2执行的语句体2;
}else if(条件表达式3){
满足条件表达式3执行的语句体3;
}.....
else{ -->接盘侠
如果以上都不满足执行得到语句体n;
}
注意: 当{}中的语句体只有一句,前后的{}可以省略
(2)switch选择(定值判断)
switch 定值判断,能用if的不一定能用switch,能用switch都能使用if
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
....
default:
语句体n;
break;
}
表达式 : 一般为一个变量,可以为一个表达式,常量都可以
结果数据类型要求: byte,short,int,char,枚举类型(jdk5),String字符串(jdk7)
case : 后面接一个定值,拿到表达式的结果与case后面的定值进行判断是否相等,相等执行对应的语句体,不相等,继续向下判断从上到下一次判断
break : 终止当前的switch语句
如果没有break会发生case穿透 : 从当前满足条件的语句体开始执行,一直向下 穿透,无论下面的case是否满足条件都不再判断,直接执行语句体,
直到遇到下一个break或者switch语句的结束而结束
default : 以上的case都不满足,name就执行default中的内容
位置可以在switch语句中的任意位置
一般定义在switch语句的最后,如果切换位置,注意break定义
2.循环结构
分为三种: for循环 次数循环
while循环 条件循环
do..while循环
for循环(重要):是支持迭代的一种通用结构,是最有效、最灵活的循环结构
for(条件初始化;条件判断;条件变化 ){
重复执行的语句体;
}
条件初始化 : 声明一个变量i并且第一次赋值 -->i条件
条件判断 : 对变量的i判断
决定循环是否结束
条件变化|迭代因子 : 变量i自身值的改变
执行顺序:
1.条件初始化 i
2.条件判断,满足执行语句体,不满足条件,结束循环
3.条件变化
从第二次循环开始,重复执行2,3步骤
注意:
for循环的变量条件i只属于当前 for循环,只能在循环中使用
for可以通过条件的变化控制循环的次数,循环体中可以使用条件的值,条件变量可以按照想要的逻辑进行变化,实现需求
考虑: 是否存在一些代码重复执行,如果是,规律可循,可以选择使用循环结构
如果循环体语句只有一句,前后的{}可以省略
//实例代码
public class Test2{
public static void main(String[] args){
//通过循环,输出10次
for(int i=1;i<=10;i++){
//再循环的循环体中可以使用循环的条件i
System.out.println("明天的你,会感谢今天努力的自己!!!!");
}
}
}