【javaSE】数据类型与变量,运算符,逻辑控制语句

一、数据类型

Java中数据类型分为基本数据类型和引用数据类型

1.1 基本数据类型

Java中基本数据类型一共有8种

整型中有4种
整型中包含字节型(byte), 短整型(short),整型(int),长整型(long)。
浮点型有两种 单精度浮点型(float),双精度浮点型(double)。
字符型有一种 char
布尔型 boolean。

二、运算符

2.1 基本算术运算符

加法(+)、减法(-)、乘法(*)、除法(/)、取余(%):在 Java 中,语法与 C 语言类似。值得注意的是,Java 支持对小数进行取余操作。在除法运算里,若参与运算的两边均为整数,结果取整;若有一边是小数,则结果为小数。

2.2 增量运算符

包括+=,-=,*=,/=,%=。以a与b的运算为例,a+=b即为a=a+b,其他运算符可与此类比。

2.3 自增 / 自减运算符

与c语言类似,++和–。a++意为a=a+1。值得注意的是,++a与a++优先级不同,++a优先级更高

        int a = 1;
        System.out.println(a++);
        System.out.println(a);
        int b = 1;
        System.out.println(++b);
        System.out.println(b);

以这段代码为例,输出应该是什么呢?
在这里插入图片描述

理由是在执行print操作时,a++操作时先执行输出操作,再执行a=a+1,所以会输出原来的值1。++b正好相反,先执行b=b+1,再输出b的值,所以会输出2。

2.4 关系运算符

等于(==):判断两边是否相等,相等返回 true ,不等返回 false 。
不等于(!=):判断两边是否不等,不等返回 true ,相等返回 false 。
大于(>)、小于(<)、大于等于(>=)、小于等于(<=) :用于比较大小关系。

2.5 逻辑运算符与位运算符

逻辑与(&&):要求两边均为布尔表达式,只有两边表达式都为 true 时,结果才为 true ,否则为 false 。存在短路现象,即若第一个表达式为 false ,则第二个表达式不再执行。
逻辑或(||):两边也需是布尔表达式,只要有一边表达式为 true ,结果即为 true ,仅当两边都为 false 时结果为 false 。同样存在短路现象,若第一个表达式为 true ,第二个表达式不再执行。
逻辑非(!):作用于布尔表达式,对其结果取反。
按位与(&):按二进制位进行操作,对应位只要有一个 0 ,结果位就是 0 。例如,对 11 和 13 进行按位与运算:
11 的二进制:0000 1011
13 的二进制:0000 1101
运算结果:0000 1001
按位或(|):对应位只要有一个 1 ,结果位就是 1 。以 11 和 13 为例:
11 的二进制:0000 1011
13 的二进制:0000 1101
运算结果:0000 1111
按位异或(^):对应位相同为 0 ,不同为 1 。如 11 和 13 按位异或:
11 的二进制:0000 1011
13 的二进制:0000 1101
运算结果:0000 0110
按位取反(~):将二进制位的 0 和 1 互换。例如 11 按位取反:
11 的二进制:0000 1011
运算结果:1111 0100

2.6三目运算符

条件运算符也叫三目运算符,形式为 “表达式 1 ? 表达式 2 : 表达式 3” 。表达式 1 得是布尔类型, 如果表达式 1 判断结果为 true ,程序去执行表达式 2;要是表达式 1 结果是 false ,那就执行表达式 3 。
例:

     boolean a = true==true?true ==false?  false:true:false;
     System.out.println(a);

这个问题乍一看上去很难,但只要明白了计算的先后顺序就能迎刃而解。下面我把原式拆分后再来看这道题:
在这里插入图片描述
加了括号之后将原式分为三段,这样来看,结果就很明显,先算中间的长式子得到结果true,再算外面的式子得到最终结果为ture。
在这里插入图片描述

2.7 移位运算符

移位运算符用于对二进制位进行操作,主要包括以下三种:
左移(<<)
左移运算符(<<)会将二进制位整体向左移动指定的位数 n ,右侧空出的位置用 0 填充。对于正数,每左移一位,其数值相当于乘以 2 。例如,数值 11 的二进制表示为 0000 1011 ,当左移 2 位后,变为 0010 1100 ,对应的十进制数值从 11 变为 44 ,即 11 乘以 2 的 2 次方。
右移(>>)
右移运算符(>>)将二进制位整体向右移动 n 位,左侧空出的位置用符号位填充。对于正数,右移一位相当于除以 2 并向下取整 。例如,11 的二进制为 0000 1011 ,右移 2 位后变为 0000 0010 。对于负数,以 -11 为例,其补码形式为 1000 1011 ,右移 2 位后变为 1110 0010 。
无符号右移(>>>)
无符号右移运算符(>>>)将二进制位整体向右移动 n 位,无论操作数是正数还是负数,左侧空出的位置均用 0 填充。例如,-11 的补码为 1000 1011 ,进行无符号右移 2 位操作后,结果为 0010 0010 ,这与右移(>>)操作的结果不同。

三、逻辑控制语句

3.1顺序结构

顺序结构是程序中最基本、最自然的执行结构。它按照语句出现的先后顺序依次执行,一条语句执行完后,接着执行下一条语句,直到程序的最后一条语句。

3.2分支结构(选择结构)

分支结构用于根据不同的条件来决定执行不同的代码块,使程序具有选择执行的能力。Java 中主要有 if 语句和 switch 语句两种分支结构。

if语句

简单 if 语句:当条件为 true 时执行相应的代码块。

public class IfStatementExample {
    public static void main(String[] args) {
        int num = 10;
        if (num > 0) {
            System.out.println(num + " 是正数");
        }
    }
}

if-else 语句:当条件为 true 时执行 if 代码块,否则执行 else 代码块。

public class IfElseStatementExample {
    public static void main(String[] args) {
        int num = -5;
        if (num > 0) {
            System.out.println(num + " 是正数");
        } else {
            System.out.println(num + " 是非正数");
        }
    }
}

if-else if-else 语句:可以根据多个条件进行判断,选择执行相应的代码块。

public class IfElseIfStatementExample {
    public static void main(String[] args) {
        int score = 85;
        if (score >= 90) {
            System.out.println("等级为 A");
        } else if (score >= 80) {
            System.out.println("等级为 B");
        } else if (score >= 70) {
            System.out.println("等级为 C");
        } else {
            System.out.println("等级为 D");
        }
    }
}

switch 语句:

根据一个表达式的值来匹配多个 case 选项,执行相应的代码块。

public class SwitchStatementExample {
    public static void main(String[] args) {
        int day = 3;
        switch (day) {
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            default:
                System.out.println("其他");
        }
    }
}

3.3循环结构

循环结构用于重复执行一段代码,直到满足特定的条件为止。Java 中有 for 循环、while 循环和 do-while 循环三种循环结构。
for 循环:通常用于已知循环次数的情况,它有初始化、条件判断和迭代三个部分。

public class ForLoopExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            System.out.println("当前数字: " + i);
        }
    }
}

while 循环:先判断条件,当条件为 true 时执行循环体,循环体执行完毕后再次判断条件,直到条件为 false 时结束循环。

public class WhileLoopExample {
    public static void main(String[] args) {
        int i = 1;
        while (i <= 10) {
            System.out.println("当前数字: " + i);
            i++;
        }
    }
}

do-while 循环:先执行一次循环体,然后再判断条件,只要条件为 true 就继续执行循环体,直到条件为 false 时结束循环。

public class DoWhileLoopExample {
    public static void main(String[] args) {
        int i = 1;
        do {
            System.out.println("当前数字: " + i);
            i++;
        } while (i <= 10);
    }
}
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值