一、Scanner
引用数据类型使用:
1.导包:指明要使用类型存在的位置
import 包名。类名;
package包信息的下面,class类型的上面
2.定义引用数据类型的变量/引用
引用数据类型 变量名/引用名=new 引用数据类型();
3.使用功能 引用.功能名字();
Scanner
定义:接收用户键盘输入
1.导包:import.java.util.Scanner;
2.创建Scanner类型的引用 Scanner sc=naw Scanner(System.in);
3.使用功能
sc.nextByte(); 接收用户输入的byte类型数据 sc.nextByte(); 接收用户输入的byte类型数据 sc.nextShort(); sc.nextInt(); sc.nextLong(); sc.nextFloat(); sc.nextDouble(); sc.next(); 接收用户输入的字符串数据,从有效字符开始接收,遇到空格停止接收,直到遇到enter结束功能 sc.nextLine(); 接收用户输入的字符串数据,接收任意字符,直到遇到enter结束 需要注意处理前面系列next功能遗留的enter问题 sc.close(); 应该使用完毕进行关闭
import java.util.Scanner;//1\导包 public class Sanner{ public static void main(String[] args){ Scanner scn=new Scanner(System.in);//2.创建Scanner类型的引用 System.out.println("请输出byte类型:"); byte a=scn.nextByte(); System.out.println(a); int b=scn.nextInt(); System.out.println("请输入int类型:"); System.out.println(b); //scn.nextLine();遗留问题 String s=scn.nextLine(); } }
二、Random 产生随机数
1.导包 import java.util.Random; 2.创建Random类型的引用 Random ran = new Random(); 3.使用功能Random : 产生随机数
ran.nextInt(); 产生int范围内的随机整数 ran.nextInt(n); 产生[0,n)内的随机整数 ran.nextDouble() 产生[0,1)之间的随机小数
公式 : [0,n) ran.nextInt(n) [0,n] ran.nextInt(n+1) [min,max) ran.nextInt(max-min)+min 过程 : ran.nextInt(max) --> [0,max) ran.nextInt(max)+min --> [min,max+min) ran.nextInt(max-min)+min --> [0,max-min)+min-->[min,max) [min,max] ran.nextInt(max-min+1)+min
import java.util.Random; public class Rd{ public static void main(String[] args){ Random rd=new Random();//创建类型 int a=rd.nextInt();//在int范围内产生随机数 System.out.println(a); System.out.println(rd.nextInt(6));//[0,6) System.out.println(rd.nextInt(6)+2);//[2,7]//在int System.out.println(rd.nextInt(6)+2);//[2,7] System.out.println(rd.nextInt(6)+2);//[2,7] System.out.println(rd.nextInt(6)+2);//[2,7] //System.out.println(Random());//[2,7] System.out.println(rd.nextDouble());//[0,1) } }
三、流程控制工具
流程控制语句:
顺序结构 : 从上到下 ,从左到右 选择结构 : 满足条件执行对应的代码段 if..else switch 循环结构 : 根据条件决定,使一段代码重复执行多次 for while do..while
if语句 : 单选择|单分支 : if(条件){ 满足条件执行的代码段; } 条件 : 必须为值为boolean表达式 双选择|双分支 : if(条件){ 满足条件执行的代码段; }else{ 不满足条件执行的代码段; } 多选择|多分支 : if(条件1){ 满足条件1执行的代码段; }else if(条件2){ 满足条件2执行的代码段; }else if(条件3){ 满足条件3执行的代码段; }... else{ 以上的条件如果都不满足执行的代码段; }
注意 : 如果{}中的语句体只有一句,前后的{}可以省略
public class If00{ public static void main(String[] args){ int a=16; //单if if(a==0){ a=12; } System.out.println(a); //双if else 判断a是否为0 if(a==0){ System.out.println("a的值为0"); }else{ System.out.println("a的值不为0"); } //多选 if(a>0){ System.out.println("a>0"); }else if(a==0){ System.out.println("a=0"); }else{ System.out.println("a<0"); } } }
switch语句
if : 定值判断|区间判断 switch : 定值判断
jdk12之前 : switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; ... default : 语句体n; break; } 表达式 : 可以为一个具体表达式,可以为一个变量 类型要求 : byte short int char enum(jdk1.5新增枚举) String(jdk1.7新增字符串) case : case后面的值就是与表达式的结果进行判断是否相等,满足相等执行对应的语句体,不相等继续向下判断 break : 终止swtich语句 如果语句体后不写,会发生case穿透,需要在适合的场景下使用,可以简化代码结构 default : 默认的,如果所有的case都不满足,最终执行default后面的语句体-->else 位置可以调整,但是一般放在最后
import java.util.Scanner; public class SwitchTest{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int mo=sc.nextInt(); switch(mo){ case 3: case 4: case 5: System.out.println("现在是春天"); break; case 6: case 7: case 8: System.out.println("现在是夏天"); break; case 9: case 10: case 11: System.out.println("现在是秋天"); case 12: case 1: case 2: System.out.println("现在是冬天"); break; default: System.out.println("输入错误"); break; } //12新增->代替可以省略break;可以在case后面判断多个值 switch(mo){ case 3,4,5->System.out.println("现在是春天"); case 6,7,8->System.out.println("现在是夏天"); case 9,10,11->System.out.println("现在是秋天"); case 12,1,2->System.out.println("现在是冬天"); default ->System.out.println("输入错误"); } //有返回值 String str=switch(mo){ case 3,4,5->"春天"; case 6,7,8->"夏天"; case 9,10,11->"秋天"; case 12,1,2->"冬天"; default->"输入错误"; }; System.out.println(str); //jdk13 :可以通过yield定义switch返回值 //注意 : 如果一个存在返回值的switch,必须存在default String st = switch(mo){ case 3,4,5->{ System.out.println("当前月份是春季"); yield "春季"; } case 6,7,8->"夏季"; case 12,1,2->"冬季"; default ->"月份不合法..."; }; System.out.println("st"+st); } }
for循环
for * while do..while 可以相互转换
for(条件初始化;条件判断;条件变化){ 循环体语句; } 条件初始化 : 声明一个变量,并第一次赋值 int i = 1; 条件判断 : 对变量i值的判断 i<=5 值为boolean类型的结果 条件变化 : 变量i自身值的改变 i++;i+=2.... 执行流程 : 1.条件初始化 int i = 1; 2.条件判断 i<=5 如果结果为false,不满足执行循环体语句{}条件,循环直接结束 如果结果 为true,可以执行循环体{}语句,下一步执行第三步 3.执行条件变化 注意 : 循环的条件i作用域为当前循环中,如果循环体语句只有一句,前后的{}可以省略
public class Class021_For{ public static void main(String[] args){ for(int i=100;i<=200;i+=10){ System.out.println(i); } //计算1~10之间整数和 int sum = 0; for(int i=1;i<=10;i++) sum+=i; System.out.println(sum); } }