今日内容
零、 复习昨日
一、运算符
二、键盘录入
三、练习
零、 复习昨日
学习方法: 画面记忆, 过电影回忆
注意变量写法:
- 数据类型 变量名 = 值;
- 常用类型 int,double
类型转换
- 小向大 默认
- 大向小 强制
一、作业
写题技巧
程序题,没有"标准答案", 只要结果符合预期
程序是调试出来的,不可能一次写对,边写边试
一定要去试着写,不能光看,根据错误的结果修正代码
要读代码,按照执行顺序读
“法无禁止皆可行” - “无所不用其极” - 大胆使用所学技术去试,新加内容变量等都可以,只要结果对
二、运算符
前提是得知道数据,变量,数据类型等知识
运算符
- 算术运算
- 赋值运算
- 关系运算
- 逻辑运算
- 三目运算
2.1 算术运算
算术运算就是数学运算: + - *(乘) /(除) %(取余) ++(自增) --(自减)
package com.qf.operation;/*** --- 天道酬勤 ---** @author QiuShiju* @desc 算术运算*/
public class Demo1 {public static void main(String[] args) {/*** 算术运算符号* + - * /* % ++ --*//*** + 加法* 1) 数字相加,* 如果两边数字类型不一致,相加结果数据类型跟大范围的一致* 2) 做字符串连接*/System.out.println(1 + 1 );// 常量相加int sum1 = 2 + 2;// 常量相加赋值给变量System.out.println(sum1 );int a = 3; // 声明两个变量int b = 3;int sum2 = a + b; // 变量相加System.out.println(sum2 );// 两边数字类型不一致,相加结果数据类型跟大范围的一致System.out.println(1 + 1.1 );// 2.1int a2 = 2;double b2 =2.2;double sum3 = a2 + b2;System.out.println(sum3 );// 4.2// 加号可以做字符串连接System.out.println("sum3 = " + sum3 );// 前两个是数字相加结果是2// 第三个1是字符串,就会拼接成"21"// 只要遇到字符串,往后加法都是拼接System.out.println(1 + 1 + "1" + 1 + 1 + 1 );// 21111// ============================================/*** - 减法* 只能做数字相减*/System.out.println(1 - 1);int a3 = 2;int b3 = 1;System.out.println(a3 - b3 );// ============================================/*** *乘法* 只能数字相乘*/System.out.println(2 * 6 );int a4 = 2;double b4 = 2.2;System.out.println(a4 * b4 );// ============================================/*** / 除法* 1)只能两数相除* 2)除法如果两边都是整除,结果只能是整数,舍弃小数取值* 3)数学常识,0不能做除数(分母)*/System.out.println(10 / 2 );// 5System.out.println(10 / 2.0 );// 5.0System.out.println(10 / 3 );// 3System.out.println(10 / 4 );// 2// System.out.println(10 / 0 ); // 有bug,即异常// ============================================/*** 取余 %* 除不尽的余数* -----* 场景: 判断奇偶性*/System.out.println(10 % 2 );// 0System.out.println(10 % 3 );// 1/*** 153,分别获得百位的1,十位5,个位3*/int num = 153;int ge = num % 10;int shi = num / 10 % 10;int bai = num / 100;System.out.println("个位:" + ge);System.out.println("十位:" + shi);System.out.println("百位:" + bai );// ============================================/*** ++ 自增1* -- 自减1*/int i = 1;i++;System.out.println(i );/*** 谁在前先用谁* ------------* ++在后,先使用后自增* ++在前,先自增后使用*/int x = 1;int r = x++;System.out.println("r = " + r );// 1System.out.println("x = " + x );// 2int y = 1;int r2 = ++y;System.out.println("r2 = " + r2 );// 2System.out.println("y = " + y );// 2// ==================================int q = 10;int w = 10;int e = 10;q = w++;// q10 w11e = --q;// q9 e9w = ++q;// q10 w10q = e--;// q9 e8System.out.println("q = "+q);System.out.println("w = "+w);System.out.println("e = "+e);}
}
2.2 赋值运算
赋值运算: 将一个值赋值给另外一个变量
- =
- -= , += , *= , /=
- int a = 1; // 将值1赋值给a变量
- int b = a;// 将变量a的值赋值给b变量
package com.qf.operation;/*** --- 天道酬勤 ---* --- 代码敲烂 月薪过万 ---** @author QiuShiju* @desc*/
public class Demo2 {public static void main(String[] args) {/*** 赋值运算* 右边赋值给左边*/int a = 1; // 1赋值给aSystem.out.println("a = " + a);int b = a;// 将a变量的值赋值给bSystem.out.println("b = " + b);/*** += , -= , *= , /=* 相当于是拆开,先运算再赋值c = c + 2* 有好处* 1) 简单* 2) 会默认进行类型转换*/int c = 1;c += 2;// 相当于是c = c + 2System.out.println("c = " + c);short s = 1;s += 1; // 默认类型转换s = (short)(s + 1);// 拆开写,就需要自己转换}
}
2.3 关系运算
关系运算,就是两个数字直接比大小
> 大于 < 小于 >= 大于等于 <= 小于等于 == 相等 != 不等
关系运算的结果是布尔值,只有true,false
package com.qf.operation;/*** --- 天道酬勤 ---* --- 代码敲烂 月薪过万 ---** @author QiuShiju* @desc 关系运算*/
public class Demo3 {public static void main(String[] args) {/*** > 大于* < 小于* >= 大于等于* <= 小于等于* == 相等* != 不等* 关系运算的结果是布尔值,只有true,false*/System.out.println(1 > 0 );// trueSystem.out.println(1 < 0 );// falseint a = 1;int b = 2;System.out.println(a > b );// falseSystem.out.println(a < b );// trueint c = 2;int d = 2;boolean r = c == d;System.out.println(r );// trueboolean r2 = c != d;System.out.println(r2 );// false}
}
2.4 逻辑运算
逻辑运算
- 与 & , 2个必须满足
- 或 | , 二选一满足
- 非 ! , 取反
- 短路与 &&
- 短路或 ||
基础&(与) |(或) !(非) 演示
package com.qf.operation;/*** --- 天道酬勤 ---* --- 代码敲烂 月薪过万 ---** @author QiuShiju* @desc 逻辑运算*/
public class Demo4 {public static void main(String[] args) {/*** 逻辑运算是与关系运算一起使用的:* 逻辑运算的符号两边是关系运算* 逻辑运算的结果是true和false*-----------------------------------* & 与,和* 语法:* a>b & c>d* 布尔表达式1 & 布尔表达式2* 作用:* 两边布尔表达式一错,整体就是错,两边都对整体才是对* 一错就错全对才对*/System.out.println(1 > 0 & 1 > 0 );// T & T = TSystem.out.println(1 > 0 & 1 < 0 );// T & F = FSystem.out.println(1 < 0 & 1 > 0 );// F & T = FSystem.out.println(1 < 0 & 1 < 0 );// F & F = FSystem.out.println("------------------" );/*** | 或*语法* 布尔表达式1 | 布尔表达式2*作用* 一对就对,全错才错*/System.out.println(1 > 0 | 1 > 0 );// T | T = TSystem.out.println(1 > 0 | 1 < 0 );// T | F = TSystem.out.println(1 < 0 | 1 > 0 );// F | T = TSystem.out.println(1 < 0 | 1 < 0 );// F | F = FSystem.out.println("------------------" );/*** !非* 语法:* !布尔表达式* 作用:* 将表达式结果取反*/System.out.println(!true ); // falseSystem.out.println(!(1 > 0) );// falseSystem.out.println(!(1 > 0 & 1 < 0) );// true}
}
短路与、短路或 演示 [重点]
// 当第一个表达式能决定整体结果时,后面表达式短路不执行/*** & 一错就错,全对才对* && 短路与,当前面表达式结果是错的时候,后面不再执行*/System.out.println(1 < 0 && 1/0==1 );/*** | 一对就对,全错才错* || 前面表达式结果是对,那么后面不执行*/System.out.println(1 > 0 || 1/0 == 0);
2.5 三目运算
数据类型 变量 = 布尔表达式 ? true时执行 : false时执行;
- 执行顺序
- 先执行表达式
- 再根据对错执行
- 如果表达式是对(true),就执行冒号前面
- 如果表达式是错(false),就执行冒号后面
package com.qf.operation;/*** --- 天道酬勤 ---* --- 代码敲烂 月薪过万 ---** @author QiuShiju* @desc*/
public class Demo5 {public static void main(String[] args) {/*** 数据类型 变量 = 布尔表达式 ? true时执行 : false时执行;** - 执行顺序* - 先执行表达式* - 再根据对错执行* - 如果表达式是对(true),就执行冒号前面* - 如果表达式是错(false),就执行冒号后面*/int r1 = 1 > 0 ? 1 : 0;System.out.println(r1 );String s1 = 1 > 0 ? "1大" : "0大";System.out.println(s1 );// 比较两数大小,输出最大的int a = 2;int b = 2;String r2 = a > b ? "a大a="+a : "b大b="+b;System.out.println(r2 );}
}
三、键盘录入
因为以前练习时的数据都是固定的写死的,无交互性
使用键盘录入就可以实现从外界将数据输入到程序
实现键盘录入,需要使用Java自带的Scanner功能,使用步骤
- 创建Scanner对象
- 导入Scanner包
- 调用方法完成输入
- 接收输入的数据
package com.qf.scanner;// 2导包
import java.util.Scanner;
public class Demo6 {public static void main(String[] args) {// 1创建Scanner对象[固定步骤]Scanner scanner = new Scanner(System.in);// 3调用方法完成输入// next()和nextLine() 输入字符串// nextInt() 输入整型// nextDouble() 输入小数System.out.println("请输入整数:" );int a = scanner.nextInt();// a就是接收到的输入的值System.out.println("输入的是: "+a );System.out.println("请输入字符串:" );String str = scanner.next( );System.out.println("输入的是: "+str );System.out.println("请输入小数:" );double d = scanner.nextDouble( );System.out.println("输入的是: "+d );}
}
四、练习 [重点]
编写一个程序,从用户输入的两个数字中获得较大的数字并显示出来。
编写一个程序,从用户输入的三个数字中找到最小的数字并显示出来。
编写一个程序,计算用户输入的3个数字的平均值并显示出来。
编写一个程序,接收用户输入的半径,并计算圆的面积和周长。
编写一个程序,从用户输入的摄氏温度中将其转换为华氏温度,并显示结果。
编写一个程序,计算一个数的平方和立方,并将结果显示出来。
附录
sum 和
duplicate 丢普雷k特
number,简写num 数字
result 结果
scan 扫描
scanner 扫描器
next 下一个
import 导入
length 长度
area 面积