JavaSE003--Java基本语法(二)

463 阅读4分钟

运算符

1.算数运算符

运算符 运算 范例 结果
+ 正号 +3 3
- 负号 b=4;-b -4
+ 5+5 10
- 6-4 2
* 3*4 12
/ 5/5 1
% 取模(取余) 7%5 2
++ 自增(前),先运算后取值 a=2;b=++a; a=3,b=3
++ 自增(后),先取值后运算 a=2;b=a++; a=3,b=2
-- 自减(前),先运算后取值 a=2;b= --a; a=1,b=1
-- 自减(后),先取值后运算 a=2;b=a--; a=1,b=2
+ 字符串连接 "He"+"llo" "Hello"

2.赋值运算符

  • 符号:=

    • 当“=”两侧数据类型不一致时,可以使用自动类型转换或者使用强制类型转换原则进行处理。
    • 支持连续赋值
  • 扩展赋值运算符:+=,-=,*=,/=,%=

3.比较运算符(关系运算符)

运算符 运算 范例 结果
== 相等于 4==3 false
!= 不等于 4!=3 true
< 小于 4<3 false
> 大于 4>3 true
<= 小于等于 4<=3 false
>= 大于等于 4>=3 true
instanceof 检查是否是类的对象 "Hello" instanceof String true

比较运算符的结果都是boolean型,也就是要么是true要么是false。

比较运算符“==”不能误写为“=”

4.逻辑运算符

&——逻辑与

|——逻辑或

!——逻辑非

&&——短路与

||——短路或

^——逻辑异或

5.位运算符

位运算符
运算符 运算 范例
<< 左移 3<<2=12-->3*2*2=12
>> 右移 3>>>1=1-->3/2=1
>>> 无符号右移 3>>>1=1-->3/2=1
& 与运算 6&3=2
| 或运算 6|3=7
^ 异或运算 6^3=5
~ 取反运算 ~6=-7

位运算符是直接对整数的二进制进行的运算。

结论:

位运算符操作的都是整型的数据。

<<:在一定范围内,每向左移一位相当于*2

>>:在一定范围内,每向右移一位相当于/2

6.三元运算符

结构:(条件表达式)?表达式1:表达式2

说明

1.条件表达式的结果为boolean类型

2.根据条件表达式真或假,决定执行表达式1还是表达式2

如果表达式为true,则执行表达式1,

如果表达式为false,则执行表达式2.

表达式1和表达式2要求是一致的。

三元运算符可以嵌套使用。

3.凡是可以使用三元运算符的地方都可以改写成if/else

程序流程控制

  • 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。

1.分支结构

  • if-else结构

例题一:

小明的考试成绩为100分时,评级是S; 成绩为(80,99]时,评级是A; 成绩为[60,80]是,评级是B; 成绩为其他时评级为C。 请从键盘输入小明的期末成绩并加以判断。

import java.util.Scanner;
class IfTest{
    public static void main(String[]args){
        Scanner sc=new Scanner(System.in);
        
        System.out.println("请输入小明的期末成绩:(0-100)");
        int score=sc.nextInt();
        
        if (score==100){
            System.out.println("评级为s");
        }else if(score>80){
            System.out.println("评级为A");
        }else if(score<=60){
            System.out,println("评级为B");
        }else{
            System.out.println("评级为C");
        }
    }
}

说明:

1.else结构是可选的。

2.如果多个条件表达式之间是“互斥”关系(或没有交集的关系)时,哪个判断和执行语句声明在上面还是在下面无所谓。

3.如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面。

4.如果多个条件语句表达式之间有包含的关系,通常情况下需要将范围小的声明在范围大的上面。否则范围小的就没有机会执行。

例题二:

编写程序:由键盘输入三个整数分别存入变量num2,num2,num3,对它们进行排序(使用if-else if-else)并且从小到大输出。

import java.util.Scanner;
class IfTest2{
    public static void main(String[]args){
        Scanner sc = new Scanner(System.in);
        
        System.out.print("请输入第一个整数:");
        int num1 = sc.nextInt();
        System.out.print("请输入第二个整数:");
        int num2 = sc.nextInt();
        System.out.print("请输入第三个整数:");
        int num3 = sc.nextInt();
        
        if(num1 >= num2){
            if(num3 >= num1){
                System.out.println(num2 + "," + num1 + "," + num3);
            }else if(num3 <= num2){
                System.out.println(num3 + "," + num2 + "," + num1);
            }else{
                System.out.println(num2 + "," + num3 + "," + num1);
            }
        }else{
            if(num3 >= num2){
                System.out.println(num1 + "," + num2 + "," + num3);
            }else if(num3 <= num1){
                System.out.println(num3 + "," + num1 + "," + num2);
            }else{
                System.out.println(num1 + "," + num3 + "," + num2);
            }
        }
    }
}