键盘输入 接受字符串的功能: next() 从有效字符开始接收,非空格字符,不能包含空格,一旦遇到空格就不再接收,但是 功能还没结束,enter才能结束功能 nextLine() 接收用户输入的一整行的内容,包含空格
import java.util.Scanner;
public class ScannerDemo07 {
public static void main(String[] args) {
//1.导包
//2.创建Scanner类型的引用
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
//3.根据引用数据功能
String str = sc.next();
System.out.println(str);
//处理遗留enter
sc.nextLine();
System.out.println("下面测试nextLine()");
String s = sc.nextLine();
System.out.println(s);
sc.close();
}
}
运行截图:
Random 类 产生随机数 使用步骤: 1.导包 2.创建Random类型的引用 3.使用功能 nextInt() 随机 产生int类型的整数 nextInt(整数n) 随机int类型的整数,范围[0,n) nextDouble() 随机小数 [0.0,1.0) 产生随机整数的公式: [0,n) ran.nextInt(n) [0,n] ran.nextInt(n+1) [min,max) ran.nextInt(max-min)+min =>[0,max-min)+min =>[min,max) [min,max] ran.nextInt(max-min+1)+min
import java.util.Random;
import java.util.Scanner;
public class RandomDemo08 {
public static void main(String[] args) {
//1.创建Random类型的引用
Random ran = new Random();
//2.使用功能
System.out.println(ran.nextInt());
System.out.println(ran.nextInt());
//产生[0,4]之间的随机整数 ->[0,5)
System.out.println(ran.nextInt(5));
//[2,5) ran.nextInt(max-min)+min
System.out.println(ran.nextInt(5-2)+2 );
System.out.println(ran.nextInt(5-2)+2 );
System.out.println("-----------------------------");
//[2,5]
System.out.println(ran.nextInt(5-2+1)+2);
System.out.println(ran.nextInt(5-2+1)+2);
System.out.println("-----------------------------");
//随机小数
System.out.println(ran.nextDouble());
System.out.println(ran.nextDouble());
System.out.println("-----------------------------");
//练习 : 随机生成[1,100] 之间的随机整数
//ran.nextInt(max-min+1)+min
System.out.println(ran.nextInt(100-1+1)+1);
System.out.println(ran.nextInt(100-1+1)+1);
System.out.println("-----------------------------");
//练习 : 随机生成[20,30] 之间的随机整数
//ran.nextInt(max-min+1)+min
System.out.println(ran.nextInt(30-20+1)+20);
}
}
流程控制语句: 顺序结构 : 从上到下 从左到右 选择结构 : 满足条件执行某些代码 循环结构 : 重复执行的代码 选择结构: if... switch 单选择| 单分支: 满足条件就执行指定代码,不满足条件就不执行 if(表达式){ 满足条件执行的代码; } 执行流程: 1.计算表达式,得到一个boolean类型的结果 2.如果结果为true,执行{}中的 与具体 3.如果结果为false,不执行{}中的语句体 双选|双分支: if(条件表达式){ 满足条件执行的语句体1; }else{ 不满足条件执行的语句体2; } 执行流程: 1.计算表达式,得到一个boolean类型的结果 2.如果结果为true,执行语句体1 3.如果结果为false,执行语句体2 多选择|多分支: if(条件表达式1){ 语句体1; }else if(条件2){ 语句体2; }else if(条件3){ 语句体3; }.... else{ 以上条件都不满足,执行语句体n; } 执行流程: 1.计算表达式1,得到boolean结果 2.如果结果为true,执行语句体1,如果结果为false,计算条件2 3如果结果为true,执行语句体2,如果结果为false,计算条件3 .... 4.如果以上所有的条件都不满足 ,执行else中的语句体n 注意: {}中的语句体只有一句,前后 的{}可以省略 else可以根据需求自定义添加 条件运算符与if语句的区别: 都可以做添加判断 条件运算符肯定会得到一个结果,但是if不一定 条件运算符值1,值2都是确定的某一个值,if的{}可以为多个语句体 如果简单的建议使用条件运算符,结构简单,如果复杂的建议使用if条件判断,结构清晰
import java.util.Random;
import java.util.Scanner;
public class IfDemo09 {
public static void main(String[] args) {
int a = -5;
//单选
//判断a是否>0
if(a>0) {
System.out.println("a>0");
}
System.out.println("哈哈哈,测试是否被if语句控制");
//双选
String username = "张三";
if(username == "张三丰"){
System.out.println("用户名输入正确");
}else{
System.out.println("用户名输入错误");
}
//多选
if(a>0)
System.out.println("a>0");
else if(a==0)
System.out.println("a=0");
else if(a<0)
System.out.println("a<0");
//练习:
// 一.判断一个 是是否为偶数
// 二.判断3个数中最大的值,3个数为随机生成[50~100]整数
Random ran = new Random();
int x = ran.nextInt(100-50+1)+50;
int y = ran.nextInt(100-50+1)+50;
int z = ran.nextInt(100-50+1)+50;
System.out.println("x="+x+",y="+y+",z="+z);
if(x>y && x>z){
System.out.println("x最大");
}else if(y>z){
System.out.println("y最大");
}else{
System.out.println("z最大");
}
/*
三.键盘输入小明的一门成绩,显示该成绩对应的奖励
100 爸爸给你买个iphone12promax
[90,100) 爸爸给你买个iphone8
[60,90) 别灰心,爸爸给你买各种学习资料
(0,60) 买学习资料,上补习班,各种爱的教育,如果下次还不及格,小心皮鞭沾凉水
0 我看你是快了!!!!
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的考试成绩:");
int score = sc.nextInt();
if(score==100){
System.out.println("爸爸给你买个iphone12proMax");
}else if(score>=90 && score<100){
System.out.println("爸爸给你买个iphone12pro");
}else if(score>=60 && score<90){
System.out.println("别灰心,爸爸给你买各种学习资料");
}else if(score>0 && score<60){
System.out.println("买学习资料,上补习班,各种爱的教育,如果下次还不及格,小心皮鞭沾凉水");
}else if(score==0){
System.out.println("我看你是快了!!!!");
}else{
System.out.println("此分数不符合规定范围");
}
/*
四.根据月份,输出对应的季节
3~5 春天
6~8 夏天
9~11 秋天
12~2 冬天
*/
System.out.println("请输入您要查询的月份:");
int month = sc.nextInt();
if(month>=3 && month<=5){
System.out.println("春天");
}else if(month>=6 && month<=8){
System.out.println("夏天");
}else if(month>=9 && month<=12){
System.out.println("秋天");
}else if(month ==12 || month==1 || month==2){
System.out.println("冬季");
}else{
System.out.println("不满足条件");
}
}
}
运行截图:
switch 语句 定值判断 语法: switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n; break; } 表达式: 一般一个变量,可以为一个表达式 结果的数据类型要求: byte,short,int,char,枚举(jdk1.5新增),String(jdk1.7) case: case的值与表达式的结果进行判断是否相等 break: 结果当前switch语句,防止case穿透 default: 相当于if语句的else default为值可以任意改变 执行流程: 1.计算表达式() 2.从上到下使用case后的值与表达式的结果进行判断,是否 相等,相等就执行对应的语句体,不相等继续向下判断 3.如果执行了对应的语句体之后,break就结束|终止switch 4.如果以上的所有的case后的值都不相等,执行default后的内容 注意: case穿透: 如果一旦满足 条件执行对应的 语句体了,没有break,会发生case穿透,无论下面的case是否满足条件,都会执行语句体,知道遇到下一个break或者switch语句的结束 switch与if的区别: switch 定值判断 if 定值判断| 区间判断
import java.util.Scanner;
public class SwtichDemo10 {
public static void main(String[] args) {
String flag = "绿灯";
switch (flag){
default:
System.out.println("输入错误");
break;
case "红灯":
System.out.println("红灯停...");
break;
case "绿灯":
System.out.println("绿灯行...");
break;
case "黄灯":
System.out.println("黄灯等一等...");
break;
}
//case穿透
/*switch (flag){
case "红灯":
System.out.println("红灯停...");
case "绿灯":
System.out.println("绿灯行...");
case "黄灯":
System.out.println("黄灯等一等...");
default:
System.out.println("输入错误");
}*/
//测试()中数据的类型
int i = 10;
switch((byte)(i*10)){
case '1':
System.out.println("1");
break;
case 10:
System.out.println("10");
break;
case 100:
System.out.println("100");
break;
}
}
}
}
运行截图: