一、数据类型转换
不同数据类型之间是否可以一起运算? 答案是可以 ## 1.1 自动类型转换(隐式类型转换) 概念:不同数据类型运算时,数据范围小的会自动转换为范围大的数据类型。 byte ->short ->int ->long ->float ->double 格式: 范围大的数据类型 变量名 = 范围小的数据类型的值; ## 1.2 强制类型转换 **byte short char **这三种数据类型在进行四则运算(加减乘除)时就自动转换为int类型 **自增自减本身存在强制类型转换 byte bb = 3; bb++; bb--;都是可以的 **复合赋值本身也存在强制类型转换 byte bb = 3; bb+=4;没问题 基本数据类型不建议使用强制类型转换。 强转格式:范围小的数据类型 变量名 = (目标类型)范围大的数据值 double d1 = 2.3; double d2 = 3.2; int s = (int)(d1+d2);
# 二、 流程控制
注: 如果没有{}包裹代码段,name流程控制只能影响到离他最近的一句语句
## 2.1 顺序结构 概念:程序的运行步骤与代码的书写顺序一致 ## 2.2 分支结构 if-else ### 2.2.1 单if结构 格式: if(条件){ 语句a } 语句b 逻辑:判断条件是否满足,如果满足则执行语句a再执行语句b 反之,直接执行语句b ### 2.2.2 标准if-else结构 格式: if(条件){ 语句a }else{ 语句b } 语句c 逻辑:满足条件执行语句a,反之执行语句b,再执行语句c 注:if、else是互斥的,if和else有且仅有一个被执行 ### 2.2.3 多条件的if-else 格式: if(条件){ 语句a } else if(条件2){ 语句b } else if(条件3){ 语句c } .... else{ 语句n } 语句m 逻辑:依次判断每一个条件,当有一个条件满足时就执行对应代码段中的语句,然后执行语句m 如果没有任何一个条件满足,就执行else的语句n,最后执行语句m ## 2.3 选择结构 关键字:switch、case、break、default 格式: switch(表达式){ case 值1: 语句a break; case 值2: 语句b break; case 值3: 语句c break; ..... default: 语句d break; } 逻辑:计算表达式的结果,将此结果与case后的值比较,若相等,则执行 该case后的语句; 如果没有一个case后的值与表达式的值匹配,则执行default后的语句。 注: 1、表达式中可以放置的数据类型有 byte、short、int、char、String、枚举类型 2、case后的值的类型必须和表达式中的结果类型一致 3、case后的值必须唯一 4、default不是必须的,只有没有任何case值匹配时才执行且 default的位置是任意的
# 三、 随机数、键盘输入
## 3.1 键盘输入 java.util.Scanner 使用步骤: 1、创建Scanner对象 Scanner input = new Scanner(System.in); 2、调用接收键盘输入的方法 input.next();接收字符串 input.nextInt();接收int类型数据 ## 3.2 随机数 java.util.Random 使用步骤: 1、创建Random对象 Random r = new Random(); 2、调用随机整数的方法 r.nextInt(); 所有int类型范围的数 r.nextInt(int bound);bound表示范围 随机在0 ~ bound-1范围内的数,包含0,也包含bound-1 例如:随机一个[m,n] 范围内的数 公式:nextInt(n-m+1) + m;