day03(运算符&if语句)

03.01 java语言基础(逻辑运算符的基本用法)

A:逻辑运算符有那些:

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

B:逻辑运算符的注意事项:

  1. 逻辑运算符一般用于连接boolean类型的表达式或者值
  2. 表达式:就是用运算符把常量或者变量连接起来的符合Java语法的式子
    1. 算术表达式:a+b
    2. 比较表达式:a == b(条件表达式)

C:结论:

1.&逻辑与:有false则false

2.|逻辑或:有true则true

3.^逻辑异或:相同为false,不同为true

4.!逻辑非:非false则true,非true则false

特点:偶数个不改变本身

03.02 Java语言基础(逻辑运算符&&和&的区别)

扫描二维码关注公众号,回复: 2358821 查看本文章

A:&&和&的区别:

a).最终结果一样

b)&&具有短路效果,左边是false,右边不执行

B:||和|的区别:

a)||只要满足第一个条件,后边的条件就不判断了

b)| 要满足所有的条件,才会进行判断

C:开发中常用:&&, ||,!

03.03 java 语言基础(位运算符的基本用法)

A:位运算符有哪些: & | ^ ~ << >> >>>

B: 位运算符的基本用法1

&,|, ^, ~的用法

&:0则0

|:1则1

^ :则0

~ :按位取反

03.04 Java语言基础(位异或运算符的特点及面试题)

位异或运算符的特点

^的特点:一个数据对另一个数据位异或两次,该数本身不变

面试题:请自己实现两个数的交换:

int x = 10;

int y = 5;

int temp;

temp = x;

x=y;

03.05 Java语言基础(位运算符的基本用法2及面试题)

>>, >>>, <<的用法:

<<:左移 左边最高位丢弃,右边补齐0

>>:右移 最高位是0,左边补齐0,最高位是1,左边补齐0

>>>;无符号右移 无论最高位是0还是1,左边都补齐0

左移,向左移动几位就是乘以2的几次幂

右移,向右移动几位就是除以2的几次幂

例: 左移:System.out.println(12 << 1); //24

右移: System.out.println(12 >> 1); //6

00000000 00000000 00000000 00001100 12的补码

000000000 00000000 00000000 0000110(0)    6

0000000000 00000000 00000000 0000110(00)  3

03.06Java语言基础(三元运算符的基本用法)

A:三元运算符的格式:(关系表达式)?表达式1 :表达式2

B: 三元运算符的执行流程

满足关系表达式,结果为表达式1

不满足关系表达式,结果为表达式2

C:案例:获取两个数的最大值

int x = 10;

int y = 5;

int z;

z=(x>y) ? x : y ;

System.out.println(“z = ” + z); //z=10

 

03.07Java语言基础(三元运算符的练习)

案例:比较两个整数是否相同

int x = 10;

int y = 5;

// boolean b = (x==y) ? true : false;

boolean b = (x==y);

System.out.println(“b = ” + b); //b= false

案例:获取三个整数中的最大值

int a = 10;

int b = 20;

Int c = 30;

//先比较两个数的值,找出这两个数的最大值

int temp = (a>b) ? a : b ;

//用前两个数的最大值与第三个数比价,获取最大值

int max = (temp >c) ? temp : c;

System.out.println(“max = ” + max); //max=30

 

03.08 Java语言基础(键盘录入的基本格式讲解)

A:为什么要是用键盘录入数据:

为了让程序的数据更符合开发的数据

让程序更灵活

B:如何实现键盘录入:

  1. 导包:
    1. 格式:import java.util.Scanner;
    2. 位置:在class上面
  2. 创建键盘录入对象:

a) 格式:Scanner sc = new Scanner (System.in);

3.通过对象获取数据

a) 格式: int x = sc.nextInt();

C:案例

键盘录入1个整数,并输出到控制台

Scanner sc = new Scanner (System.in); //创建键盘录入对象

System.out.println(“请输入一个整数:);

 int x = sc.nextInt(); //将键盘录入的数据存储在x 中

System.out.println(x);

 

键盘录入2个整数,并输出到控制台

Scanner sc = new Scanner (System.in); //创建键盘录入对象

System.out.println(“请输入第一个整数:);

 int x = sc.nextInt(); //将键盘录入的数据存储在x 中

System.out.println(“请输入第二个整数:);

 int y = sc.nextInt(); //将键盘录入的数据存储在y 中

System.out.println(x);

System.out.println(y);

03.09 Java语言基础(键盘录入的练习1)

案例:1.键盘录入两个数据,并对这两个数据求和,输出其结果

Scanner sc = new Scanner (System.in); //创建键盘录入对象

System.out.println(“请输入第一个整数:);

 int x = sc.nextInt(); //将键盘录入的数据存储在x 中

System.out.println(“请输入第二个整数:);

 int y = sc.nextInt(); //将键盘录入的数据存储在y 中

int sum = x+y;

System.out.println(sum);

2.键盘录入两个数据,获取这个两个数据中的最大值

Scanner sc = new Scanner (System.in); //创建键盘录入对象

System.out.println(“请输入第一个整数:);

 int x = sc.nextInt(); //将键盘录入的数据存储在x 中

System.out.println(“请输入第二个整数:);

 int y = sc.nextInt(); //将键盘录入的数据存储在y 中

int max = (x>y) ? x : y;

System.out.println(“max = “ + max);

03.10 Java语言基础(键盘录入练习2)

案例:键盘录入两个数据,比较这两个数据是否相等

Scanner sc = new Scanner (System.in); //创建键盘录入对象

System.out.println(“请输入第一个整数:);

 int x = sc.nextInt(); //将键盘录入的数据存储在x 中

System.out.println(“请输入第二个整数:);

 int y = sc.nextInt(); //将键盘录入的数据存储在y 中

// boolean b = (x==y) ? true : false;

boolean b = (x==y);

System.out.println(“b = ” + b);

 

键盘录入三个数据,获取这三个数据中的最大值

Scanner sc = new Scanner (System.in); //创建键盘录入对象

System.out.println(“请输入第一个整数:);

 int a = sc.nextInt(); //将键盘录入的数据存储在a中

System.out.println(“请输入第二个整数:);

 int  b = sc.nextInt(); //将键盘录入的数据存储在b 中

System.out.println(“请输入第二个整数:);

 int  c = sc.nextInt(); //将键盘录入的数据存储在c 中

//先比较两个数的值,找出这两个数的最大值

int temp = (a>b) ? a : b ;

//用前两个数的最大值与第三个数比价,获取最大值

int max = (temp >c) ? temp : c;

System.out.println(“max = ” + max);

 

03.11 Java语言基础(顺序结构语句)

A:流程语句:可以控制程序的执行流程

B:流程语句的分类:

顺序结构

选择结构

循环结构

C:执行流程:从上往下,依次执行

 

03.12 Java语言基础(选择结构if语句格式1及其使用)

A:选择结构的分类:

If语句

Switch 语句

B:if语句有几种格式:3种

格式1:

if(比较表达式){

语句体;

}

C:执行流程

先计算比较表达式的值,看其返回值是true还是false

如果是true就执行语句体

如果是false 就不执行语句体

03.13 Java语言基础(选择结构if的注意事项)

A:比较表达式无论是简单还是复杂,结果必须是boolean类型

B:if语句控制的语句体如果是一条语句,大括号可以省略(建议永远不要省略大括号),多条语句,不能省略大括号

C:一般来说:有左大括号,就没有分号,有分号就没有左大括号

 

03.14 Java语言基础(选择结构if语句及其格式2的使用)

A:格式2:

if (比较表达式){

语句体1;

}else{

语句体2;

}

B:执行流程:

先计算比较表达式的值,看其返回值是true还是false

如果是true 就执行语句体1

如果是false 就执行语句体2

C:案例:1.获取两个数据中的较大值

int a = 10;

int b = 20;

Int c ;

if(a>b){

c  = a;

}else{

c  = b;

}

System.out.println(c);

  1. 判断一个数据是奇数还是偶数,并输出是奇数还是偶数

int a = 10;

if(a % 2 == 0){

System.out.println(a+”是一个偶数”);

}else{

System.out.println(a+”是一个奇数”);

}

注意事项:else后面是没有比较表达式的,只有if后面有

 

03.15 Java语言基础(if语句的格式2和三元的相互转化问题)

A:案例:if语句和三元运算符完成同一个效果

B:if语句和三元运算符的区别:

三元运算符就是if语句的简写。
   当if else运算后,有一个具体的结果时,可以简化写成三元运算符
               int a = 3,b;
        if(a>1){
           b = 100;
        }else{
           b = 200;

}
       这时就可以简化:b = a>1?100:200;

C什么时候if语句实现不能用三元改进呢?:

当if语句控制的操作是一个输出语句的时候就不能

因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出

 

03.16 Java语言基础(if语句的格式3及其使用)

格式3:

If(比较表达式1){

语句体1;

} else If(比较表达式2){

语句体2;

} else If(比较表达式3){

语句体3;

…….

else{

语句体n+1;

 

执行流程:

先计算比较表达式1的值,看其返回值是true还是false

如果是true 就执行语句体1,if语句结束

如果是false 就比较表达式2的值,看其返回值是true还是false

 

如果是true 就执行语句体2,if语句结束

如果是false 就比较表达式3的值,看其返回值是true还是false

 

如果都是false就执行语句体n+1

注意事项:最后一个else可以省略,但是不建议省略,可以对范围外的错误值提示

03.17 Java语言基础(if语句的格式3及其练习

A:键盘录入一个成绩,判断并输出成绩的等级

90-100 优 80-89 良 70-79 中 60-69 及格 0-59 差

B:键盘录入X的值,并计算出y 的值并输出

x>=3 y=2 * x+1;

-1<x<3 y=2 * x;

x<=-1 y=2* x-1;

03.18 Java语言基础(选择结构if语句的嵌套使用)

A:获取三个数据中的最大值

int a = 10;

int b= 20;

int c= 30;

if(a>b){

if(a>c){

System.out.println(a+”是最大值”);

}else{

System.out.println(c+”是最大值’);

}

}else{ //b>=a

if(b>c){

System.out.println(b+”是最大值”);

}else{

System.out.println(c+”是最大值’);

}

}

03.19 Java语言基础(选择结构switch语句的格式及其解释)

A:switch语句的格式:

int x = 10;

switch(表达式){ //基本数据类型可以接收byte ,short, char, int

case 值1: //引用数据类型可以接收枚举(jdk1.5) String字符串(jdk1.7)

语句体1;

break;

case 值2:

语句体2;

break;

default:

语句体 n+1;

break;

}

B:switch格式语句的解释:

C:面试题:

byte可以作为switch的表达式吗? 能

long可以作为switch的表达式吗? 不能

String可以作为switch的表达式吗? 可以 jdk1.7就可以了

例:String name =”张三”;

String gender =”男士”;

switch(gender){

case ”男士”:

System.out.println(name+”是一位”+gender);

break;

default:

System.out.println(name+”是一位女士”);

break;

}

D:执行流程:

先计算表达式的值

然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句

 

03.20 Java语言基础(选择结构switch语句的练习)

案例:给定一个值,输出对应的星期几

int week = 5;

Switch(week){

case 1:

System.out.println(“星期一”);

break;

case 2:

System.out.println(“星期二”);

break;

case 3:

System.out.println(“星期三”);

break;

case 4:

System.out.println(“星期四”);

break;

case 5:

System.out.println(“星期五”);

break;

case 6:

System.out.println(“星期六”);

break;

case 7:

System.out.println(“星期日”);

break;

default:

System.out.println(“对不起没有对应的日期”);

break;

}

 

03.21 Java语言基础(选择结构switch语句的注意事项)

1.case 后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的

2. default可以省略,但不建议使用,因为它的作用是对不正确的情况给出提示

特殊情况:case就可以把值固定 如:A ,B ,C , D

  1.  break可以省略吗?

不建议省略,因为会出现case穿透现象

  1.  default:可以放在任意位置 ,但建议放在最后

5. switch语句的结束条件:

a.遇到break就结束了

b.执行到switch的右大括号就结束了

03.22 javg语言基础(选择结构switch语句练习){

A:看程序写结构:

int x = 2;

int y = 3;

switch(x){

default:

y++;

break;

case 3 :

y++;

case 4:

y++;

}

System.out.println(“y=”+y)

B: 看程序写结构:

int x = 2;

int y = 3;

switch(x){

default:

y++;
case 3 :

y++;

case 4:

y++;

}

System.out.println(“y=”+y)

03.23 java语言基础(选择结构if语句和switch语句的区别)

总结:switch语句和if语句的各自使用场景

switch判断固定值的时候用

if判断区间的时候用

案例:分别用switch语句和if语句实现下列要求:

键盘录入月份,输出对应的季节

3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12,1,2 冬季

1.用switch语句实现:

Scanner sc = new Scanner (System.in); //创建键盘录入对象

System.out.println(“请输入月份数字:);

int month = sc.nextInt();

Switch(week){

case 3:

case 4:

case 5:

System.out.println(month+“月是春季”);

break;

case 6:

case 7:

case 8:

System.out.println(month+“月是夏季”);

break;

case 9:

case 10:

Case11:

System.out.println(month+“月是秋季”);

break;

case 12:

case 1:

case 2:

System.out.println(month+“月是冬季”);

break;

}

2.用if语句实现:

Scanner sc = new Scanner (System.in); //创建键盘录入对象

System.out.println(“请输入月份数字:);

int month = sc.nextInt();

 if (month <= 3 && month <= 5) {   System.out.println(month+“月是春季”);

  } else if (month >= 6 && month <= 8) {   System.out.println(month+“月是夏季”);

  } else if (month >= 9 && month <= 11) {   System.out.println(month+“月是秋季”);

  } else if((month >= 0 && month <= 2 ) || month==12) {  System.out.println(month+“月是冬季”);

  } 

 

 

猜你喜欢

转载自blog.csdn.net/qq_42700595/article/details/81179952
今日推荐