目录
变量交换
//交换变量值
int a = 3;
int b = 5;
int c;
//方法一 : 好理解,额外多占用空间
/* c=a;
a=b;
b=c;
*/
/*
c=b;
b=a;
a=c;
*/
//方法二 计算效率低一点 没有额外占用空间
/*
a = a+b;//a =8 b = 5
b = a-b;//a = 8 b = 3
a = a-b;//a = 5 b = 3
*/
//方法三 计算效率最高的 没有额外占用空间
/* //异或
//3^5^5=3
//3^5^3=5
a = a^b; //a = 3^5 b = 5
b = a^b; //a = 3^5 b = 3
a = a^b; //a=5 b=3
*/
System.out.println("b值为");
System.out.println(b);
System.out.println("a值为");
System.out.println(a);
Scanner类
作用:
获取用户键盘输入的数据
如何使用:
1*导入Scanner所在包
import java.util.Scanner;
位置:在类定义的上边
2*创建Scanner类的对象
Scanner scan = new Scanner(System.in);
3* 调用sc的方法来获取数据
nextlnt()---获取用户输入的整数
nextDouble()---获取用户输入的浮点数
next()----获取用户输入的字符串
调用方法的格式
sc.nextInt();----获取用户输入的一个整数
int num = sc.nextInt();
double num1 = sc.nextDouble();
String str = sc.next;
4*关闭Scanner
sc.close();----关闭Scanner
案例 :
1*获取一个整数,并输出他的奇偶性
Scanner scan = new Scanner(System.in);
System.out.println("输入d");
int d = scan.nextInt();
System.out.println(d%2==0? "偶数":"奇数");
scan.close();
2*获取两个整数,输出最大值
Scanner sc = new Scanner(System.in);
System.out.println("输入第一个要比的数字大小");
int a = sc.nextInt();
System.out.println("输入第二个要比的数字大小");
int b = sc.nextInt();
System.out.println("最大值为");
System.out.println(Math.max(a, b));
sc.close();
结果为 :
控制结构
概念 :
控制程序执行
分类
顺序结构
从上到下 从左到右
分支结构
循环结构
分支结构
if判断语句
格式1
if(判断条件){
当判断条件成立时要执行的代码块;
}else{
当判断条件不成立时要执行的代码
}
判断类型的值必须为boolean类型
案例 : 变量num是否大于0,如果大于0,则输出num值
Scanner sc = new Scanner(System.in);
System.out.println("输入值");
int a = sc.nextInt();
if (a>0){
System.out.println(a);
if (a%2==0){
System.out.println("输入的值为偶数");
}else {
System.out.println("输入的值为奇数");
}
}else{
System.out.println("数值小于0,不输出");
}
案例2: 判断a b 变量的大小 输出最大值
Scanner sc = new Scanner(System.in);
System.out.println("输入第一个值");
int a = sc.nextInt();
System.out.println("输入第二个值");
int b = sc.nextInt();
if (a>b){
System.out.println("最大值为第一个值a:"+a);
}else {
System.out.println("最大值为第二个值b:"+b);
}
if(判断条件){
当判断条件成立时要执行的代码块;
}else if(判断条件2){
当判断条件不成立时且判断条件2成立时要执行的代码
}...{
}else{
前面判断条件都不成立时,执行里面代码
}
案例: 按成绩划分优秀
Scanner sc = new Scanner(System.in);
System.out.println("输入成绩");
int a = sc.nextInt();
if (a>100|a<0){
System.out.println("请输入正确的分数");
}else if (a>=90){
System.out.println("优秀");
}else if (a>=80&&a<90){
System.out.println("良好");
}else if (a>=70&&a<80){
System.out.println("中等");
}else if (a>=60&&a<70){
System.out.println("及格");
}else if(a<60){
System.out.println("不及格");
}
sc.close();
案例3
输入月份,获取当前月份对应的季节
Scanner sc = new Scanner(System.in);
System.out.println("输入月份");
int a = sc.nextInt();
if(a<0||a>12){
System.out.println("请输入正确的月份");
}
else if (a>=3&&a<=5){
System.out.println("春天");
}else if (a>=6&&a<=8){
System.out.println("夏天");
}else if (a>=9&&a<=11){
System.out.println("秋天");
}else{
System.out.println("冬天");
}
if嵌套
if(){
if(){
}
}
案例: 月份,同上
Scanner sc = new Scanner(System.in);
System.out.println("输入月份(1-12)");
int a = sc.nextInt();
sc.close();
if (a>=1&&a<=12) {
if (a >= 3 && a <= 5) {
System.out.println("春天");
} else if (a >= 6 && a <= 8) {
System.out.println("夏天");
} else if (a >= 9 && a <= 11) {
System.out.println("秋天");
} else {
System.out.println("冬天");
}
} else{
System.out.println("请输入正确的月份值");
}
注意 :
1*如果代码块的内容只有一行 可以省略{}
2*变量的作用域问题
变量定义开始到所属的{}的结束
在同一个定义域内变量不能重名,在不同定义域则可以重名
switch case选择语句
switch case break 都是关键字
格式 :
switch(表达式或值){
case 值1:
当值和值1匹配时,要执行的代码块
case 值2 :
当值和值2匹配时,要执行的代码块
...
default :
值和所有的值都匹配不上,执行此代码
}
案例 : 简易计算器 + - * /
1*获取用户输入的两个运算值
2*获取用户输入的算术运算符
3*输出计算结果
注意:
1*case穿透 当值和某个case匹配后 不止执行当前case的代码块 还会将之后所有case以及default代码块都执行一遍
解决方法 :
break;----break语句
作用,一旦程序执行break语句,则switch case语句结束
2*switch case 只支持int byte short char String 枚举
3*switch case 和if区别
1*if语句更常用 使用场景更广泛
2*if更适用范围以及更加复杂场景的判断
3*switch case 适用于选项有限 且需要一一匹配的场景下
案例 : 模拟客服小程序
10086
欢迎致电10086
1-查询花费余额
2-查询套餐内剩余流量
3-查询积分
0-人工客服
请输入要办理的业务码
将用户输入的业务码保存起来
switch case 对业务码进行匹配
Scanner sc = new Scanner(System.in);
System.out.println("欢迎致电10086");
System.out.println();
System.out.println("按1查询花费余额");
System.out.println("按2查询套餐内剩余流量");
System.out.println("按3查询积分");
System.out.println("按0转接人工客服");
System.out.println();
System.out.println("请输入要办理的业务码");
int a = sc.nextInt();
sc.close();
switch (a){
case 1:
System.out.println("查询花费余额");
System.out.println("当前余额为123");
break;
case 2:
System.out.println("查询套餐内剩余流量");
System.out.println("当前剩余流量为123456MB");
break;
case 3:
System.out.println("查询积分");
System.out.println("当前积分为123456789分");
break;
case 0:
System.out.println("转接人工客服");
System.out.println("转接人工客服成功,请问您有什么问题");
break;
}