Java03
导包的三种方式:
1.手动导包
2.点击鼠标自动生成
3.快捷键:Alt+Enter
Scanner的基本使用
Scanner:扫描器,即可以通过Scanner类扫描用户的控制台录入的数据
录入步骤(格式都是固定的,除了接收数据的变量名(i)自定义,其他都不变,否则结果就不对):
1.导包(使用Scanner类,需要先导包,位置在类定义的上面)
import java.util.Scanner;
2.创建键盘录入对象(使用一个类前,要先创建它的对象)
Scanner sc = new Scanner(System.in);
3.接受数据(接受用户输入的数据并赋值给指定变量(如int类型)),在此步骤之前可以给以提示(请输入),最后就将获得的数据打印输出
int i = sc.nextInt();
package cn.hjh.demo;
//1.导包(在类代码的前面导入)
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
//2.创建键盘录入对象
Scanner sc = new Scanner(System.in);
//提示用户输出数据
System.out.println("请输入一个整数");
//若不给用户提示的话,用户不输入数据,程序会一直在运行(左侧的小方块呈红色)
//3.接受数据
int i = sc.nextInt();
//将用户录入的数据打印到控制台
System.out.println("i:"+i);
}
}
求和案例:
package cn.hjh.demo;
//1.导包
import java.util.Scanner;
public class ScannerDemo2 {
public static void main(String[] args) {
//键盘录入两个整数,求它们的和
//2.创建键盘录入对象
Scanner sc = new Scanner(System.in);
//3.提示用户输入数据,输入完毕后点Enter
System.out.println("请输入第一个整数");
int a = sc.nextInt();
System.out.println("请输入第二个整数");
int b = sc.nextInt();
//4.计算整数和
int sum = a + b;
//5.打印结果
System.out.println("sum:"+sum);
}
}
流程控制
Java流程控制结构:
1.顺序结构
2.选择(判断)结构
3.循环结构:重复操作
流程控制结构的概念:
主要描述的就是代码的执行顺序。可以让所有的代码都执行,也可以让代码在满足某些条件的情况下再执行。可以只执行一次,也可以执行无限次。(程序的结果跟代码的执行顺序紧密相关,通过使用一些特定的语句控制代码的执行顺序从而完成特定的功能,这就是流程控制结构)
顺序结构:即程序按照代码的顺序从上往下、从左往右依次执行的代码结构,是最简单的流程控制结构,不需要特定的语句,程序的大多数代码都是这样执行的
选择(判断)结构:根据不同的条件选择不同的代码来执行的代码结构。先判断条件是否成立,条件成立则执行一部分代码,不成立则执行另外一部分代码或者结束程序。(例子:上楼,先判断电梯是否能用,能用则选择搭电梯,否则走楼梯上楼)
选择结构的分类:
1.if语句(三种格式):
if一般用做区间值的判断,比如
当前时间7~9点,小A和你说“早上好”;
当前时间10~12点,小A和你说“早上好”;
第一种格式:
if(关系表达式) {
//语句体
}
package cn.hjh.demo;
/*
格式一:
if(关系表达式) {
//语句体
}
执行流程:
如果关系表达式成立,则执行语句体
如果关系表达式不成立,则不执行语句体
*/
public class IfDemo {
public static void main(String[] args) {
System.out.println("开始执行");
int a = 10;
// int b = 20;
int b = 10;
if (a==b) {
System.out.println("a=b");
}
//a不等于b,则if语句体不执行,控制台没有打印输出
//a等于b,则if语句体执行,控制台打印输出结果
System.out.println("执行结束");
}
}
第二种格式:
if(关系表达式) {
//语句体1
}else {
//语句体2
}
执行流程:
先判断关系表达式,看其是否成立(true:成立;false:不成立)
如果关系表达式成立,则执行语句体1
如果关系表达式不成立,则执行语句体2
相当于三目运算符:a=b?a:b;
package cn.hjh.demo;
/*
格式二:
if(关系表达式) {
//语句体1
}else {
//语句体2
}
执行流程:
先判断关系表达式,看其是否成立(true:成立;false:不成立)
如果关系表达式成立,则执行语句体1
如果关系表达式不成立,则执行语句体2
*/
public class IfDemo2 {
public static void main(String[] args) {
System.out.println("开始执行");
//需求:判断两个整数是否相等,相等则打印相等,反之则是不相等
int a = 10;
int b = 20;
if (a==b) { // if:如果
System.out.println("相等");
}else { //else:否则
System.out.println("不相等");
}
System.out.println("执行结束");
}
}
第三种格式:
if(关系表达式1) {
//语句体1
}else **if **(关系表达式2) {
//语句体2
}else **if **(关系表达式3) {
//语句体3
}//……
else {
}
执行流程:
先判断关系表达式1是否成立(true:成立;false:不成立)
如果关系表达式1成立,则执行语句体1
不成立,则判断关系表达式2,是否成立,
如果关系表达式成立,则执行语句体2
不成立,则判断关系表达式3,是否成立,
依次类推
package cn.hjh.demo;
/*
第三种格式:
if (关系表达式1) {
//语句体1
}else if (关系表达式2) {
//语句体2
}else if (关系表达式3) {
//语句体3
}//……
else {
}
执行流程:
先判断关系表达式1是否成立(true:成立;false:不成立)
如果关系表达式1成立,则执行语句体1
不成立,则判断关系表达式2,是否成立,
如果关系表达式成立,则执行语句体2
不成立,则判断关系表达式3,是否成立,
依次类推
*/
public class IfDemo4 {
public static void main(String[] args) {
//需求:与智能机器人交流
//当输入数字0~12,小A和你说“上午好”;
//当输入数字13~18,小A和你说“下午好”;
//当输入数字19~24,小A和你说“晚上好”;
//当输入其他数字时,小A和你说:没有这个时间段
//1.定义变量,记录时间
int t = 8; //测试数据:正确数据,边界值,错误数据
//2.小A根据你的时间和你打招呼
if (t >= 0 && t <= 12) {
System.out.println("上午好");
} else if (t >= 13 && t<= 18) {
System.out.println("下午好");
} else if (t <= 19 && t >= 24) {
System.out.println("晚上好");
} else {
System.out.println("没有这个时间段");
}
}
}
结合前面学的Scanner:
package cn.hjh.demo;
import java.util.Scanner;
public class IfDemo3 {
public static void main(String[] args) {
//需求:与智能机器人交流
//当输入数字0~12,小A和你说“上午好”;
//当输入数字13~18,小A和你说“下午好”;
//当输入数字19~24,小A和你说“晚上好”;
//当输入其他数字时,小A和你说:没有这个时间段
Scanner sc = new Scanner(System.in);
System.out.println("请输入时间点");
int t = sc.nextInt();
if (0 <= t && t <=12) {
System.out.println("上午好");
}else if (13 <= t && t <= 18) {
System.out.println("下午好");
}else if (19 <= t && t <= 24) {
System.out.println("晚上好");
}else {
System.out.println("没有这个时间段");
}
}
}
if语句案例之获取两个整数的较大值:
package cn.hjh.demo;
import java.util.Scanner;
public class IfDemo5 {
public static void main(String[] args) {
//需求:键盘录入两个数据,获取这两个数据的最大值
//1.创建键盘录入对象,以便接受用户录入的数据(包含:导包,创建对象)
Scanner sc = new Scanner(System.in);
//2.提示用户输入两个整数,并接受
System.out.println("请输入第一个整数");
int a = sc.nextInt();
System.out.println("请输入第二个整数");
int b = sc.nextInt();
//3.定义变量,记录最大值
int max;
//4.通过if……else语句,判断两个整数的最大值
if (a>b) {
max = a;
// System.out.println("max:"+a);
}else {
max = b;
// System.out.println("max:"+b);
}
//5.将结果打印到控制台上
System.out.println("最大值为:"+max);
}
}
if语句案例之根据学生成绩输出对应级别:
package study.demo;
import java.util.Scanner;
public class IfDemo6 {
public static void main(String[] args) {
/*需求:键盘录入学生成绩,根据成绩判断学生的级别
90~100 大神
80~89 优秀
70~79 良好
60~69 及格
0~59 不及格
*/
//1.创建键盘录入对象
Scanner sc = new Scanner(System.in);
//2.提醒学生录入成绩,并接受
System.out.println("请输入学生成绩");
int s = sc.nextInt();
//3.根据输入的成绩与条件进行比较,按照要求进行输出即可
if (s>=90&&s<=100) {
System.out.println("王者");
} else if (s>=80&&s<=89) {
System.out.println("星耀");
} else if (s>=60&&s<=79) {
System.out.println("钻石");
} else if (s>=0&&s<=59) {
System.out.println("铂金");
} else {
System.out.println("你就个青铜");
}
}
}
2.switch语句:转换,切换
一般用做固定值的判断,
你说“星期一”,小A说“Monday”;
你说“星期五”,小A说“Friday”;
格式:
switch(表达式) {
case值1:
语句体1;
break;
case值2:
语句体2;
break;
case值3:
语句体3;
break;
……
case值n:
语句体n;
break;
default:
语句体;
break; //可写可不写
}
switch(表达式):表达式的取值类型:byte,short,iny,char;JDK5以后可以是枚举;JDK7以后可以是String(双引号内的内容)
枚举是指一系列数目可数的数据。比如每周的星期,每年的月份。
case值:case后面跟的是要和表达式进行比较的值
语句体:语句体部分可以是一条或多条语句
break:表示中断,结束的意思,可以结束switch语句
default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
switch案例:
package study.demo;
import java.util.Scanner;
public class SwitchDemo {
public static void main(String[] args) {
//需求:键盘录入数字,根据数字打印其对应的星期
//1.创建键盘录入对象,以便接受用户录入的数据
Scanner sc = new Scanner(System.in);
//2.提示用户输入数字,并接受数据
System.out.println("请输入数字");
int number = sc.nextInt();
//3.根据用户录入的数字,打印对应的日期,通过switch语句实现
switch (number) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期七");
break;
default:
System.out.println("没有这个星期数");
}
}
}