day03 运算符和if语句

运算符.png

1.算术运算符基本用法

算术运算符.png
A:
  • 运算符:对常量和变量操作的符号
    分类:算术、赋值、比较、逻辑、位、三目运算符
  • 算术运算符:+ - * / % ++ --
  • 整数相除只能得到整数,任意一个数据为浮点数则结果为浮点数
  • / %的区别,整数相除的商和余数
B:++和--的应用
  • 作用:对变量自增或自减
  • 使用:
    单独使用:符号在前后效果相同
    参与运算使用:符号在前,先自增减后赋值; 符号在后,先赋值后自增减;
int a = 10;
int b = 10;
int c = 10;
a = b++;//a=10, b=11
c = --a;//a = 9 c = 9
b = ++a;//a = 10 b = 10
a = c--;// a = 9 c=8

int x = 4;
int y = (x++)+(++x)+(x*10)//从左到右按优先级,先括号,4+6+60=70 x=6
C:+的多种用法
  • 加法,正号,字符串连接
'a' + 1//自动转换为int,得到一个int值98
“hello”+'a'+1;//helloa1,因为运算规则从左到右
'a'+1+“hello”;//98hello
D:赋值运算符的基本用法
  • =、+=、-=、*=、/=、%=
  • +=类型的特别之处:隐含了强制类型转换
判断错误
short s=1;
s=s+1;
//出错,自动转换右边是int类型,左边是short,可能会损失精度
short s=1;
s+=1;
//不出错,隐含了强制转换(类型s)

2.比较运算符基本用法

  • 比较运算符:==,>=, <=,!=, <,>
  • 特点:结果是boolean类型,

3.逻辑运算符

  • 逻辑运算符:&(逻辑与),|(逻辑或,有一个true即是true),^(逻辑异或,同false异true(男女)),!(逻辑非) &&(双与,比对与:最终结果相同,但是若左边false,右边不执行。具有短路的效果),||(双或,对比或:同理具有短路效果)
  • 特点:用于连接布尔型表达式

4,位运算符

A:位运算符的基本用法

  • &, |, ^, ~(按位取反),(按位分别作位运算)
    <<, >>, >>>
  • 作位运算,首先要把数据转换为二进制。注意运算后是补码,需要转为原码
例子.png

B:位异或运算的特点

  • ^的特点:一个数对另一个数位异或两次,该数本身不变。
  • 可以实现两个变量的交换,不引入额外变量
交换两个变量.png

C:位移运算符

  • << 左移:空位补0,被移除的高位丢弃,*2的移动位数次幂
  • >> 右移:最高位是0,右移后空位补0;最高位是1则补1./2的移动位数次幂
  • >>> 无符号右移:无论最高位0,1,均补0.
  • 2*8 == 2<<3

5.三元运算符

  • (关系表达式)?表达式1:表达式2:如果条件为true,运算后结果是表达式1,为false,运算后结果是表达式2;
  • 获取两个整数中的最大值:
int x = 100; 
int y = 200;
int z = (x >= y) ? x : y;
  • 获取三个整数中的最大值:
int a = 10;
int b = 30;
int c = 20;
int max = (a > b) ? ((a > c)?a:c) :((b>c)?b:c)
  • 比较两个整数是否相同:
boolean flag = (m == n)? true:false;
boolean flag = (m == n);

6.键盘输入基本格式

  • 对应包:import java.util.Scanner;
  • 创建对象:Scanner sc = new Scanner(System.in)
  • int x = sc.nextInt();
  • 键盘录入两个数据,求两个数据中的最大值
Scanner sc = new Scanner(System.in);
System.out.println('输入x:');
int x = sc.nextInt();
System.out.println('输入y:');
int y = sc.nextInt();
System.out.println('输出最大值:',+ ((x>=y)?x:y));

7.顺序结构

流程控制:顺序结构、选择结构、循环结构

A:if语句

  • 顺序结构是最简单最基本的流程控制,按代码先后顺序依次执行。
  • if和switch语句
  • if语句注意事项:表达式必须为boolean类型;有时候可以用三元运算符转换;

B:switch语句

  1. 格式:

    switch用法.png

    表达式取值byte,short,int,char;JDK5以后可以是枚举;JDK7以后可以是String
    case:和表达式比较的值
    语句体:要执行的代码
    break:中断;
    default:所有case都和表达式不匹配则执行default后的语句;

  2. switch的注意事项

  • case后面只能是常量,不能是变量,而且多个case后面的值不能相同
  • default可以省略,但最好不要省略
  • default可以放在任意位置,但建议在最后
  • 结束条件:遇到break或执行到末尾
  • 结果为boolean类型的判断不能用switch
  1. 表达式时字符串


    demo.png

8.循环结构

构成:初始化语句、判断条件语句(boolean)、循环体语句、控制条件语句

A for循环

  1. 格式


    格式.png
  2. 注意事项

  • 判断语句是boolean类型

B while循环

1.格式


while.png

2.和for循环的区别

  • for循环的控制条件变量在循环结束后就被释放了而while循环因为定义在循环体外,循环结束后也没有被释放,还可以使用

C do-while循环

  1. 格式


    do-while.png

D 三种循环的区别

  • 优先级


    优先级.png
  • 注意死循环
    while(true);
    for(;;);

  • break:中断,跳出单循环

  • continue:继续,跳出这次循环,进入下次循环执行

你可能感兴趣的:(day03 运算符和if语句)