小肩膀安卓逆向--027-043

2021/11/3 23:40:39

本文主要是介绍小肩膀安卓逆向--027-043,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

027.算术运算符

  1. 运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
  2. +-作为单元运算符存在时,表示正负
  3. +作为二元运算符存在时
    +左右两边没有字符串,则进行数值运算。
    +左右两边有字符串,则进行字符串拼接,如果不是字符串会转成字符串。
    System.out.println(100+98);//198
    System.out.println('a'+1);//98
    System.out.println("a"+1+3);//a13
    System.out.println(1+3+"a");//4a
  1. 关于+ - * /
    System.out.println(12/5);//2
    System.out.println(12.0/5);//2.4
    double a = 12/5; System.out.println(a);//2.0
    int x = 4270; x = x / 1000 * 1000; System.out.println(x);//4000
  1. 关于%
    a % b 等价于 a - a / b * b
    System.out.println(10 % 4);
  1. 关于++ --
    作为独立的语句使用: 前++和后++都完全等价于i=i+1;
    作为表达式使用:
    前++先自增后赋值(赋值是先赋值给一个临时变量)
    后++先赋值后自增
    int i = 1; i = i++; System.out.println(i);
    int i = 1; i = ++i; System.out.println(i);
    int x = 4; int y = (--x)+(x--)+(x*10);
    int i = 100; System.out.println(++i+i);
  1. 练习
    43天等于多少星期多少天
public class Day {
    public static void main(String[] args) {
        int a = 43;
        int weeks = 43/7;
        int days = 43%7;
        System.out.println(weeks + " "+days);
    }
}

4725秒等于多少时分秒
public class Seconds {
    public static void main(String[] args) {
        int a=4725;
        int hours = a/(60*60);
        int minutes = a/60-hours*60;
        int seconds = a%60;
        System.out.println(hours + " "+ minutes+" "+seconds);
    }
}
摄氏温度c ,将其转化为华氏温度f ,转换公式为:f=9/5*c+32
public class Hua {
    public static void main(String[] args) {
        double c = 37;
        double f = 9.0/5*c+32;//不要写成9/5*c+32哦
        System.out.println(f);
    }
}

030.赋值运算符

  1. 赋值运算符就是将运算后的值,赋值给变量
  2. 赋值运算符的左边只能是变量,右边可以是变量、表达式、常量,右边的值赋值给左边的变量。
  3. 赋值运算符的分类
    基本赋值运算符=
    int a = 100;
    复合赋值运算符
    += -= *= /= %=
    a += 2; 等价于 a = a + 2;
  4. 有趣的案例
    byte b = 3; b = b + 4; //错
    byte b = 3; b += 4; //对,理解成有一个强转的过程
    byte b = 3; b++; //对
    byte b = 3; b = b + 1; //错

031.关系运算符

  1. 关系运算符(比较运算符)的结果都是boolean型,也就是要么是true,要么是false
  2. 关系运算符组成的表达式,称为关系表达式。经常用在if结构的条件中或循环结构的条件中
  3. 关系运算符
  • == 相等于 不要写成=
  • != 不等于
  • < 小于
  • > 大于
  • <= 小于等于
  • >= 大于等于
  • A instanceof B 表示A是否是B这个类的对象

032.逻辑运算符

  1. 用于连接多个关系表达式,最终的结果也是一个boolean值

  2. 逻辑运算符

  • 逻辑与&
  • 短路与&&
  • 逻辑或|
  • 短路或||
  • 取反!
  • 逻辑异或^
  1. 逻辑运算规则
  • a&b:当a和b同时为true ,则结果为true,否则为false
  • a&&b:当a和b同时为true ,则结果为true,否则为false
  • a|b:当a和b,有一个为true ,则结果为true,否则为false
  • a||b:当a和b,有一个为true ,则结果为true,否则为false
  • a^b:当a和b不同时,则结果为true,否则为false
  • !a:当a为true,则结果为false,当a为false,结果为true
  1. 逻辑和短路的区别
    & 不管真假两边都运算
    && 左边为假,右边就不运算
    | 不管真假两边都运算
    || 左边为真,右边就不运算

034.三目运算符

  1. 基本语法
    变量 = (条件表达式) ? 表达式1 : 表达式2;
    相当于if...else...的简写,条件表达式结果为true,则执行表达式1,反之亦然。
  2. 练习
public class Max {
	//三个数里面求最大值
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 18;
        int temp = a > b ? a : b;
        int max = temp > c ? temp : c;
        System.out.println(max);
    }
}

035.运算优先级

如果不清楚优先级,又想确保代码运行没有问题,可以加小括号,改变优先级

036.进制与位运算

  1. 整数有四种表示方式(字符可以根据码表先转成数字)
    十进制 0-9
    二进制 0和1,0b或者0B开头
    八进制 0-7,0开头
    十六进制 0-9abcdef,0x或者0X开头

  2. 演示
    image

  3. 位运算符
    & | ^ ~ << >> >>>

037.进制转换

  1. 十进制转十六进制
    将该数不断除以16,直到商为0,每步得到的余数倒过来,就是对应的十六进制。
  2. 二进制转十进制
  3. 二进制转十六进制
    从低位开始,将二进制数每四位一组,转成对应的十六进制数即可。
  4. Hex编码
    1 byte = 8 bit
    Java中的数字都是有符号的

038.if

  1. 程序的三种结构
  • 顺序结构
  • 分支结构
  • 循环结构
  1. 分支的分类
  • 单分支 if
    刷公交卡 money < 10 的时候提示 余额小于10,请适时充值。否则不做提示
  • 双分支 if...else 三目运算
    刷公交卡 money > 2 的时候,提示刷卡成功。money < 2 的时候提示余额不足
  • 多分支 if...else if...else
  1. 连续if和if...else if...else的区别
  2. if、switch、while、do...while、for
    如果只有一条语句包含在内部,可以省略括号
  3. 根据定义的月份不同,打印该月份所属的季节
    int x = 3;
    if(x>12 || x<1)
        System.out.println("月份不存在");
    else if(x>=3  &&  x<=5)
        System.out.println("春季");
    else if(x>=6  &&  x<=8)
        System.out.println("夏季");
    else if(x>=9  &&  x<=11)
        System.out.println("秋季");
    else
        System.out.println("冬季");

039.switch

  1. switch的基本语法
    switch、case、break、default 关键字作用介绍
    case和default是可选的

  2. 根据定义的数值不同,打印对应的星期

  3. 一般情况下,case块的顺序可以调换

  4. 加不加break的区别

  5. 根据定义的月份不同,打印该月份所属的季节

int x = 4;
switch(x){
	case 3:
	case 4:
	case 5:
		System.out.println("春季");
		break;
}
  1. switch中表达式的数据类型,要和case后面常量类型一致,或者是可以转换的
  2. switch中表达式的数据类型,只能是byte、short、char、int、String、enum
  3. case后面的值,只能是常量或者常量表达式,不能是变量

039.while

  1. while基本语法
    循环变量初始化
    while(循环条件){
    执行语句;
    循环变量迭代
    }
    先判断,再执行。

  2. 执行流程
    循环变量初始化
    判断循环条件
    执行语句
    循环变量迭代
    判断循环条件
    ......

  3. do...while基本语法
    循环变量初始化
    do{
    执行语句;
    循环变量迭代
    }while(循环条件);
    先循环,后判断,至少会执行一次。

042.for

  1. for循环基本语法
    for(初始化表达式; 循环条件表达式; 循环后的操作表达式){
    执行语句;
    }

  2. for循环的执行流程
    初始化表达式
    循环条件表达式
    执行语句
    循环后的操作表达式
    循环条件表达式
    ......

  3. for循环注意事项
    初始化表达式和循环后的操作表达式,可以写到别的地方,但是分号不能省略
    可以放任意表达式,但是循环条件表达式必须返回boolean类型
    初始化表达式和循环后的操作表达式,可以放多个表达式,用逗号连接
    变量有自己的作用域。对于for来讲:如果将变量定义在for语句中。那么该变量只在for语句内有效。for语句执行完毕。该变量在内存中被释放

043.break 与 continue

一个例子搞懂break、continue、return

public class BreakContinueReturn {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            if(i==2){
                break;
//                continue;
//                return;
            }
            System.out.println(i);
        }
        System.out.println("这是循环体外的语句");
    }
}


这篇关于小肩膀安卓逆向--027-043的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程