赞
踩
1. 数据类型转换 -----> 自动类型转换 和 强制类型转换
2. 运算符 ----------> 今日重点
3. 补充Scanner 键盘录入
1. 什么是数据类型转换? 在一个变量定义的过程当中,等号左右两边数据类型不一致的情况下,出现数据类型转换,主要分为两种。 2. 类型转换的分类 A. 自动类型转换(数据范围从小到大) B. 强制类型转换(数据范围从大到小) 3. 数据范围大小顺序: byte,short,char -> int -> long -> float -> double 【基础班大家唯一需要记忆的地方】 4. 自动类型转换的格式 格式: 数据类型 变量名称 = 数据值; 例如: double dd = 3.66F; //将 float 类型的数据,转换成为 double 类型的数据 long num = 520; //将 int 类型的数据,转换成为 long 类型的数据
1. 格式写法
A. 格式:
数据类型小的 变量名称 = (数据类型小的)数据值;
B. 例如:
float num1 = (float)3.14; //将 double 类型转换成为 float 类型,浮点数默认是double,如果是float需要加F
int num2 = (int)521L; //将 long 类型的521L数据转换成为int类型,long类型的数据后面需要加上L
2. 注意事项
"强制类型转换,可能损失精度" //可能的含义: 有可能有精度损失,有可能没有精度损失。
例如:
int num3 = (int)521L; //这里就没有精度损失,因为int类型当中,可以存放 521 数据。
int num4 = (int)3.99F; //这里就会出现精度损失,结果是3.相比之前的精度就变化了。
1. 三种类型的数据参与运算的情况 byte short char 参与 数学运算(加减乘除等)的过程当中,会自动提升为 int 类型,进行计算。(前提是变量) 2. 例如: //[1]变量+变量 byte num1 = 3; byte num2 = 4; byte result1 = (byte)(num1+num2); //自动提升 int System.out.println(result1); //-------------------------------- //[2]变量+常量 byte num3 = 5; byte result2 = (byte)(num3 + 10); //自动提升 int System.out.println(result2); //-------------------------------- //[3]常量+常量 byte result3 = 30+40; //不会报错,常量相加。 System.out.println(result3); 3. 常量优先计算原则: 如果是两个常量参与运算。先计算结果,再看数据类型。 上面的 30+40 先加再看类型,加完之后,结果是 70, 70在 byte 范围之内,所以不会报错。 注意.如果加完之后,超过了 byte 的范围,就会报错.需要强制类型转换了。
1. ASCII码表的含义 American Standard Code for Information Interchange 美国信息交换标准代码 简单一点说: 就是二进制数据(十进制)和英文字母符号之间的对应关系 '0' ---> 数字 48 'A' ---> 数字 65 'a' ---> 数字 9 参考: 川哥笔记 chm --> B知识附录 --> ASCII码表 2. 万国码表 Unicode ASCII码表 是美国人使用的 GBK 码表 是国标,中国使用的 ISO-8859-1 欧洲人使用的码表 UTF-8 码表,统一了世界码表,称之为"万国码表" 3. 简单记忆码表的方式: +0 记忆法 //加上0的方式 char zhifu1 = '我'; char zhifu2 = '爱'; char zhifu3 = '你'; System.out.println(zhifu1+0); //25105 System.out.println(zhifu2+0); //29233 System.out.println(zhifu3+0); //20320
1. 常见的算术运算符 加、减、乘、除、取余(取模) 2. 案例: 小学应用题目 int apple = 14; int boy = 3; //======[小学三年级的玩法]========= int x = apple/boy; //商 int y = apple%boy; //余数 System.out.println(x); //4 System.out.println(y); //2 //======[小学五年级的玩法]========= double z = 1.0*apple/boy; System.out.println(z); //4.6666666 计算一个三位数的各个数字(例如:有一个三位数是 153,计算个位是几,十位是几,百位是几) int num = 153; int ge = num%10; //个位数字 int shi = num/10%10; //十位数字 153÷10=15 15÷10=1....5 int bai = num/10/10%10; //百位数字 153÷10=15 15÷10=1 1÷10=0...1 System.out.println(ge); //3 System.out.println(shi); //5 System.out.println(bai); //1 3. 加法的多种用法 A. 数字是 直接做加法运算 B. 字符是 转换成为int类型做加法运算 C. 字符串是 连接在一起 练习案例: //打印输出一个式子: 50-20=30 int x = 50; int y = 20; System.out.println(x); //50 System.out.println(x+"-"); //50- System.out.println(x+"-"+y); //50-20 System.out.println(x+"-"+y+"="); //50-20= System.out.println(x+"-"+y+"="+(x-y)); //50-20=30 4. 自增和自减操作 A. 符号问题 自增: ++ 例如: num++; 或者 ++num; //含义:在原始数据的基础上,加上1 自减: -- 例如: num--; 获取 --num; //含义:在原始数据的基础上,减去1 B.混合使用的情况(了解即可,后期使用不多) 口诀: "前加,先加后用;后加,先用后加"
1. 赋值运算符的分类
A. 基本的赋值运算符
=
B. 复合的赋值运算符
+=
-=
*=
/=
%=
2. 注意事项
复合的赋值运算符当中,隐含了强制类型转换。
题目: short s = 1; s+=1; 和 short s=1; s=s+1; 请问,哪一个会报错,为什么?
答案: 后面的会报错,short变量参与运算的过程当中,会自动提升为 int 类型,需要强制类型转换。
前面没有报错的原因是, 复合赋值运算符当中包含了强制类型转换。相当于 s = (short)(s+1);
1. 常见的比较运算符
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等等于
!= 不等于
2. 注意事项
A. 比较运算符的结果是 boolean 类型,成立是 true 不成立是 false
B. 千万不要把 == 写成 = ,双等是比较运算符,单等是赋值运算符。
1. 为什么需要使用逻辑运算符? 逻辑运算符有什么用? 用于连接关系表达式。 例如: 1<x<10 ,这里的写法不正确!应该怎么写? 1<x && x<10 2. 常见的逻辑运算符 A.与(并且) && "有false则false" B.或(或者) || "有true则true" C.非(取反) ! "非true则false,非false则true" 3. 注意事项 A. 逻辑运算符的结果是 boolean 类型 B. 短路效果: 如果左边可以确定结果,右边不执行。 4. 生活实例: 找女朋友的要求: a. 既要颜值高,又要身材好。 --> 逻辑与 && b. 要么颜值高,要么身材好。 --> 逻辑或 || 降低要求 c. 只要不是男的就行。 ------> 逻辑非 ! 降低要求
1. 格式:
数据类型 变量名称 = 表达式 ? 数值1:数值2; //例如: int RR = x>y?a:b;
2. 流程:
A. 先计算表达式的结果,看是 true 还是 false.
B. 如果结果是 true,那么值1就是结果。 //相当于是 RR=a;
C. 如果结果是 false,那么值2就是结果。//相当于是 RR=b;
3. 注意事项
A. 数值1和数值2的数据类型必须统一,和等号左边的数据类型要一致。
B. 三元运算符,必须使用。要么打印输出,要么赋值,不能单独去写。//不能写: x>y?a:b; 错误写法!
1. 为什么需要介绍 Scanner?
前面我们写的 变量值都是固定的.
如果想要修改,需要修改Java代码,很不方便。
所以介绍 Scanner,保证程序的灵活性,可以手动输入数据。
2. Scanner 使用的操作步骤?
A. 导包 import java.util.Scanner;
B. 创建对象 Scanner sc = new Scanner(System.in);
C. 录入数据 int num = sc.nextInt();
import java.util.Scanner; //【A】导包 public class Demo{ //判断一个三位数是否是对称数字 131 就是对称数字 public static void main(String[] args){ Scanner sc = new Scanner(System.in); //【B】创建对象 System.out.println("请输入一个三位数:"); //[1]获取数据 int num = sc.nextInt(); //【C】录入数据 //[2]操作数据 //获取到个位数字和百位数字 int ge = num%10; int bai = num/10/10%10; String str = (100<=num&&num<=999)&&(ge==bai)?"YES":"NO"; //[3]显示结果 System.out.println("是否是对称数字:"+str); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。