diff --git "a/06 \351\231\210\345\277\227\344\274\237/20221129 Java\350\257\255\346\263\225.md" "b/06 \351\231\210\345\277\227\344\274\237/20221129 Java\350\257\255\346\263\225.md" new file mode 100644 index 0000000000000000000000000000000000000000..3abbd647366a3175d62798ccc6c0d74f29e24d3d --- /dev/null +++ "b/06 \351\231\210\345\277\227\344\274\237/20221129 Java\350\257\255\346\263\225.md" @@ -0,0 +1,132 @@ +# 键盘录入 + +1.导包。Scanner 类在java.util包下,所以需要将该类导入。导包的语句需要定义在类的上面。 + +```java +import java.util.Scanner; +``` + +2、创建Scanner对象。 + +```java +Scanner sc = new Scanner(System.in); +``` + +3、接收数据 + +```java +int i = sc.nextInt(); +``` + +## 数据范围从大到小 + +```java +byte -> short -> + int -> long -> float -> double + char -> +``` + +```java +byte b1 = 10; +byte b2 = 20; +byte b3 = b1 + b2; // 第三行代码会报错,b1和b2会自动转换为int类型,计算结果为int,int赋值给byte需要强制类型 转换。 +// 要不就把byte类型修改为int: +int num = b1 + b2; +// 要不就把后面的变成byte类型: +byte b3 = (byte) (b1 + b2); +//提示boolean类型不能与其他基本数据类型相互转换。 +``` + +## 强行转换 + +就说把一个数据范围大的数值或者变量赋值给另一个数据范围小的变量值。 + +例如: + +```java +double num1 = 5.5; +int num2 = (int) num1; // 将double类型的num1强制转换为int类型 +System.out.println(num2); // 输出5(小数位直接舍弃) +``` + +## 常量优化机制 + +```java +byte a = 3; +byte b = 4; +byte c = a + b; //错误。因为两个byte变量相加,会先提升为int类型 +byte d = 3 + 4; //正确。常量优化机制 +``` + +在编译时,整数常量的计算会直接算出结果,并且会自动判断该结果是否在byte取值范围内, + +byte范围 -128~127 + +short范围 -32768~32767 + +int范围 -2的31次方到2的31次方-1 + +long范围 负数:-2的63次方到2的63次方-1 + +float范围 负数:-3.402823E+38到-1.401298E-45 正数: 1.401298E-45到3.402823E+38 + +double范围 -1.797693E+308到-4.9000000E-324 正数:4.9000000E-324 到1.797693E+308 + +char范围 0-65535 + +e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。 + +# 运算符 + ++加法 -减法 *乘法 /除法 %取余 + +加法如果一边字符串,一边是数字会变成连字符 + +```java +char ch1 = 'a'; +System.out.println(ch1);//输出97 +char ch2 = 'A'; +System.out.println(ch2);//输出65 +char ch3 = '0'; +System.out.println(ch3); // 输出48作业 +``` + +# 作业 + +```java +import java.util.Scanner; + +public class li { + public static void main(String[] args) { + Scanner number = new Scanner(System.in); + System.out.println("请输入一个四位数"); + int sws = number.nextInt(); + int q = sws /1000; + int b = sws /100 %10; + int s = sws /10 %10; + int g = sws %10; + System.out.println("千位是"+q+"百位是"+b+"十位是"+s+"个位是"+g); + } +} +``` + +```java +import java.util.Scanner; + +public class li { + public static void main(String[] args) { + Scanner abc = new Scanner(System.in); + System.out.println("请输入华氏温度"); + double hswd = abc.nextDouble(); + System.out.println("摄氏温度为"+(hswd-32)*5/9); + + Scanner cba = new Scanner(System.in); + System.out.println("请输入摄氏温度"); + double sswd = cba.nextDouble(); + System.out.println("摄氏温度为"+(((sswd*9)/5)+32)); + } +} +``` + + +