JavaSE-变量与运算符

JavaSE-变量与运算符

一、上午回顾

  1. JDK安装
  2. 安装(JDK、JRE的安装目录要分离,路径中不能有中文或者空格)
  3. 环境变量配置(JAVA_HOME、Path、CLASSPATH)
  4. 验证命令(保证版本一致)

二、本章目标

  1. 掌握运算符
  2. 掌握表达式
  3. 掌握流程控制结构
  4. 顺序结构
  5. 分支结构
  6. 循环结构

三、知识点

1.运算符

释义 
用于表示数据的运算、赋值和比较的一系列符号我们称之为运算符。

分类 
运算符按功能划分如下:

运算符类型

运算符

算术运算符

+,-,*,/,++,–,%

关系运算符

<,<=,>,>=,==,!=

布尔运算符

&&, ||,&,|,!,^

位运算符

&,|, ~,^,>>,>>>,<<

赋值类运算符

=, +=, -=, *=, /=, %=

字符串连接运算符

+

条件运算符(三目运算符)

? :

其他运算符

instanceof,new


1.1算术运算符

类型

描述

示例

++(自加运算符)

++在变量前面时,先做运算后赋值
++在变量后面时,先做赋值后运算

i = 1, j; j = ++i; 则j=2;
i = 1, j; j = i++; 则 j = 1

--(自减运算符)

同上

i = 1, j; j = - -i; 则 j = 0;
i = 1, j; j = i- -; 则 j = 1;


1.2关系运算符 

注意 ‘==’关系运算,其意义为全等,基本数据类型比较值,引用数据类型比较地址 
 

1.3逻辑运算符

与 &:两个操作数相与,如果都为true,则为true

或 |:两个操作数相或,有一个为true,则为true

异或 ^:相异为true,两个操作数不一样就为true,相同为false

短路&& 和 逻辑& 区别?

1.短路与,从第一个操作数推断结果,只要有一个为fase,不再计算第二个操作数

2.逻辑与,两个操作数都计算

短路|| 和 逻辑| 区别?

1.短路或,从第一个操作数推断结果,只要有一个为true,不再计算第二个操作数

2.逻辑或,两个操作数都计算

1.4赋值运算符 
注意

1)当 "=" 两侧数据类型不一致时,适用默认转换或强制转换处理,如long num=20;int i=(int)num; 
2)特殊情况为:当byte,char,short被整赋值时,不需要进行强制类型转换,不超过取值范围即可。即一个自动装载的过程。
       char c=100;byte b=20; //正确 

       char c2=-99999;byte b2=128; //类型越界错误 
 

运算符

用法

c

+=

a+=b

a=a+b

-=

a-=b

a=a-b

*=

a*=b

a=a*b

/=

a/=b

a=a/b

%=

a%=b

a=a%b


1.5字符串连接运算符

    1. "+" 可用于数值计算,当有一方是字符时,则为将左右两个数据转化成字符串连在一起。如int i=10+20;String j="10"+"20"。
    2. 当" +" 任意一侧为字符串时,系统将自动将两侧转化成字符串,做字符串链接操作。
    3. 当进行System.out.println(var)打印操作的时候,均自动转化为字符串进行输出。

1.6运算优先级

优先级

运算符分类

结合顺序

运算符

由高到低

分隔符

左结合

. [] ( ) ; ,

一元运算符

右结合

! ++ – - ~

算术运算符
移位运算符

左结合

* / % + -

<< >> >>>

关系运算符

左结合

< > <= >= instanceof == !=

逻辑运算符

左结合

! && || ~ & | ^

三目运算符

右结合

布尔表达式?表达式1:表达式2

赋值运算符

右结合

= *= /= %= += -= <<= >>= >>>= &= *= |=


【问】:做一道综合性强点的练习题,感受感受运算符优先级怎么样?

  int a = 5; 
  int b = 4; 
  int c = a++ - --b * ++a / b-- >> 2 % a--; 
  c的值是多少?

2.表达式

表达式是指由(常量、变量、操作数)与运算符所组合而成的语句。

  1. 符合语法规则的运算符+操作数,即为表达式,如:5+3,2.0+3.0,a+b,3%2
  2. 表达式最终运行结果即为表达式的值,值的类型就是表达式的类型
  3. 运算符优先级,决定表达式的运算顺序
  4. 三目运算符:

    形如:x?y:z

    释义:计算x的值,若为true,则表达式的值为y;若为false,则表达式的值为z

示例:

int score=70;

       String result=score<60 ? "不及格" : "及格";

       System.out.println(result); //输出结果为及格

3.流程控制结构

  1. 程序控制结构是指以某种顺序执行的一系列动作,用于解决某个问题。程序可以通过控制语句来对程序实现选择、循环、转向和返回等流程控制。
  2. 程序控制结构包括:顺序结构、分支结构、循环结构。
  3. 下面我们先来看看顺序结构和分支结构
1. 顺序结构

顺序结构程序就是按语句出现的先后顺序执行的程序结构。计算机按顺序逐条执行语句,当一条语句执行完毕,自动转到下一条语句。

如图: 

示例:

int a = 11; //第一步 
int b = 2; //第二步 
int c = a+b; //第三步 
System.out.println(“a+b的结果为:”+c); //第四步

2. 分支结构

1)分支结构又称为选择结构。当程序执行到控制分支语句时,首先判断条件,根据条件表达式的值选择相应的语句执行(放弃另一部分语句的执行)。

2)分支结构包括单分支、双分支和多分支三种形式。

如图: 

2.1单分支 
【语法格式】 
if(布尔表达式){语句块;} 
说明:当语句块为一条语句时,大括号可以省略。只有布尔表达式为true时,才进入if语句中。

【示例】 
int age = 20; 
if(age >= 18){ 
    System.out.println("成年人"); 
}

2.2双分支
【语法格式】 
if(布尔表达式){ 
    语句块;//if分支 
}else{ 
    语句块;//else分支 
}

【示例】 
int age = 20; 
if(age >= 18){ 
    System.out.println("成年人"); 
}else{ 
    System.out.println("未成年人"); 
}

2.3多分支-1
【语法格式】 
if(布尔表达式){ 
    语句块; 
}else if(布尔表达式){ 
    语句块; 
}else{ 
    语句块; 
}

【示例】 
int age = 20; 
if(age >0 && age <=18){ 
    System.out.println("未成年"); 
}else if(age > 18 && age <=40) { 
    System.out.println("青年"); 
}else if(age > 40&& age<=50) { 
     System.out.println("中年"); 
}else if(age > 50) { 
     System.out.println("老年"); 
}else{ 
     System.out.println("见鬼了"); 
}

2.4多分支-2
【语法格式】

switch (表达式) {

        case 值1:

            语句;

            break;

        case 值2:

            语句;

            break;

        default:

            语句;

            break;

}

说明:

    - 表达式的值只能为:char、byte、short、int类型、String、enum类型,其它类型均非法

    - break语句可以省略,但会出现switch穿透

    - default语句也可以省略,一般不建议省略,并且放置在最后

【示例】 
public static void main(String[] args) { 
     String type = "dog"; 
     switch(type) { 
     case "cat": 
          System.out.println("喵"); 
          break;//注意break 
     case "dog": 
          System.out.println("旺"); 
          break; 
     case "sheep": 
          System.out.println("咩"); 
          break; 
     default: 
          System.out.println("哇!"); 
     } 
     System.out.println("switch执行结束!"); 
}

四、总结

见 JavaSE-运算符流程控制总结.xmind

五、作业

1、完成数据类型转换案例

2、计算简易控制台计算器

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值