运算符及流程控制
活动地址:CSDN21天学习挑战赛
运算符
- 算数运算符
+ - * / %
整数相除 --> 整除
- “+” 用作连接符
- “+”符号与字符串运算的时候是用作连接符的
- 操作数的一方是字符串
- 运算顺序,从左到右
- 自增自减运算符
x++ ; ++x; x-- ; --x;
- 赋值运算符
= += -= *= /= %=
- a+=b 等价于 a = (a的数据类型)(a+b);
复合赋值运算符隐含了强制类型转换。 - 关系运算符
返回结果是一个boolean类型
== != > < >= <= instanceof 检查是否是类的实例 "wkk" instanceof String --> true
- 注意== 与 =
- 逻辑运算符连接多个关系表达式
& 逻辑与 | 逻辑或 ! 逻辑非 ^ 逻辑异或 相异为真 ------------- && 短路与 || 短路或
- 短路x 与 非短路x 的计算结果是一致的
- 常用 && , ||, !
- 三元运算符
条件表达式? 值1 : 值2;
运算符优先级
- 与的优先级大于或的优先级
类型转换
自动类型转换
类型范围小的变量,会自动转换成类型范围大的变量。
- byte 和 char , short 和 char 之间不存在自动类型转换
- byte, short, char在参与算术运算时,会自动转换成 int型
说明
- 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再 进行计算
- boolean 不参与转换
强制类型转换
以强行将类型范围大的变量、数据赋值给类型范围小的变量
数据类型 变量1 = (数据类型)变量1 ;
- 强制类型转换可能造成数据(丢失)溢出
- 浮点型强转成整型,直接丢掉小数部分
- char类型可以保存int的常量值,但是不能保存int的变量值,需要强转
键盘输入
- 引包
import java.util.Scanner;
- 创建扫描器实例
Scanner sc = new Scanner(System.in);
- 接收数据
int age = sc.nextInt(); String name = sc.next();
java.lang包不需要显式导入
import java.util.Scanner; public class Input { public static void main (String[] args){ Scanner sc = new Scanner(System.in); int age = sc.nextInt(); String name = sc.next(); System.out.println(age); System.out.println(name); } }
流程控制
分支结构
- if
if (条件表达式) { }
if(条件表达式){ }else{ }
if(条件表达式){ }else if (条件表达式){ }else { }
- 如果大括号控制的只有一行代码,则大括号可以省略不写
- switch适合做值匹配得分支选择
switch(表达式){ case 值1: ... break; case 值2: ... break; ... default: ... }
- 表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String
不支持double、float、long - case给出的值不允许重复,且只能是字面量,不能是变量
循环结构
- for
for (初始化语句;循环条件;迭代语句){ }
- while
while(循环条件){ 循环体; 迭代语句; }
- do-while
do{ 循环体; 迭代语句; }while(循环条件);
break和continue
- break: 跳出并结束当前所在循环的执行
- continue: 用于跳出当前循环的当次执行,进入下一次循环
- break 只能用于结束所在循环, 或者结束所在switch分支的执行 continue只能在循环中进行使用。
- break 和 continue 都可以和标签结合使用
loop: for(....){ for(....){ ... break loop; } }
loop: for(....){ for(....){ ... continue loop; } }
随机数Random类
- 引包
import java.util.Random;
- 创建随机数实例
Random r = new Random();
- 获取随机数
int number = r.nextInt(n) ; // [0,n)
import java.util.Random; public class Number{ public static void main(String[] args){ Random r = new Random(); int n = r.nextInt(100); System.out.println("随机数: "+n); } }