Java运算符及流程控制

运算符及流程控制

        • 运算符及流程控制
          • 运算符
          • 运算符优先级
          • 类型转换
            • 自动类型转换
            • 强制类型转换
          • 键盘输入
          • 流程控制
            • 分支结构
            • 循环结构
            • break和continue
          • 随机数Random类

运算符及流程控制

活动地址:CSDN21天学习挑战赛

运算符
  1. 算数运算符

    + - * / %
    

    整数相除 --> 整除

  2. “+” 用作连接符

    • “+”符号与字符串运算的时候是用作连接符的
    • 操作数的一方是字符串
    • 运算顺序,从左到右
  3. 自增自减运算符

    x++ ;   ++x;
    x-- ;   --x;
    
  4. 赋值运算符

    = 
    += -= *= /= %= 
    

    a+=b 等价于 a = (a的数据类型)(a+b);

    复合赋值运算符隐含了强制类型转换。

  5. 关系运算符

    返回结果是一个boolean类型

    ==  != 
    >   < 
    >=  <=
    instanceof  检查是否是类的实例    "wkk" instanceof String  --> true
    

    注意== 与 =

  6. 逻辑运算符

    连接多个关系表达式

    &   逻辑与
    |   逻辑或
    !   逻辑非
    ^   逻辑异或   相异为真
    -------------
    && 短路与    
    || 短路或
    
    • 短路x 与 非短路x 的计算结果是一致的
    • 常用 && , ||, !
  7. 三元运算符

    条件表达式?1 :2
运算符优先级

Java运算符及流程控制_第1张图片

  • 与的优先级大于或的优先级
类型转换
自动类型转换

类型范围小的变量,会自动转换成类型范围大的变量。

在这里插入图片描述

  • byte 和 char , short 和 char 之间不存在自动类型转换
  • byte, short, char在参与算术运算时,会自动转换成 int型

说明

  1. 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再 进行计算
  2. boolean 不参与转换
强制类型转换

以强行将类型范围大的变量、数据赋值给类型范围小的变量

数据类型 变量1 = (数据类型)变量1 ;
  • 强制类型转换可能造成数据(丢失)溢出
  • 浮点型强转成整型,直接丢掉小数部分
  • char类型可以保存int的常量值,但是不能保存int的变量值,需要强转
键盘输入
  1. 引包

    import java.util.Scanner;
    
  2. 创建扫描器实例

    Scanner sc = new Scanner(System.in);
    
  3. 接收数据

    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);
	}
}
流程控制
分支结构
  1. if

    if (条件表达式) {
    }
    
    if(条件表达式){
    }else{
        
    }
    
    if(条件表达式){
    }else if (条件表达式){
    }else {
    }
    

    如果大括号控制的只有一行代码,则大括号可以省略不写

  2. switch

    适合做值匹配得分支选择

    switch(表达式){
    case1...
        break;
    case2:
        ...
        break;
    ...
    default:
        ...
    }
    
    • 表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String

      不支持double、float、long

    • case给出的值不允许重复,且只能是字面量,不能是变量

循环结构
  1. for

    for (初始化语句;循环条件;迭代语句){
        
    }
    
  2. while

    while(循环条件){
    	循环体;
        迭代语句;
    }
    
  3. do-while

    do{
        循环体;
        迭代语句;
    }while(循环条件);
    
break和continue
  • break: 跳出并结束当前所在循环的执行

  • continue: 用于跳出当前循环的当次执行,进入下一次循环

  • break 只能用于结束所在循环, 或者结束所在switch分支的执行 continue只能在循环中进行使用。

  • break 和 continue 都可以和标签结合使用

    loop: for(....){
        for(....){
            ...
             break loop;
        }
    }
    
    loop: for(....){
        for(....){
            ...
             continue loop;
        }
    }
    
随机数Random类
  1. 引包

    import java.util.Random;
    
  2. 创建随机数实例

    Random r = new Random();
    
  3. 获取随机数

    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);
	}
}

你可能感兴趣的:(Java,java,jvm,开发语言)