12月27日内容

一,昨日回顾
(1)键盘录入的使用步骤是什么?
固定写法:
(a)创建键盘录入对象
Scanner sc=new Scanner(System.in);
(b)导包,位置class上面
import java.util.Scanner;
©提示并接受数据
int num=sc.nextInt();
(d)输出变量
System.out.println(num);
(2)位运算符中的位异或特点是什么?
位异或^基本特点:相同则为0,不同则为1(二进制数据)
特殊特点:一个数为异或另一个数据两次,其值是它本身
(3)请使用有效方式表示2的4次方=16
2<<3
位移符号:
<<:特点:当前数据乘以2的移动次幂
左移的时候,最高符号位丢弃掉,在右边补齐0
>>:特点:当前数据本身除以2的移动次幂
右移的时候,最高符号位为1,左边补齐1,为0则补齐0
>>>:无论最高符号位是1还是0,左边都补齐0
(4)三元运算符的格式以及执行流程是什么?
(表达式)?表达式1:表达式2
执行流程:判断表达式是否成立,如果为true,成立,执行表达式1的结果;不成立,执行表达式2的结果
逻辑运算符:
基本逻辑符号:
&:有false则false
|:有true则true
^:相同则为false,不同则为true
!:非true则false,非false则true
扩展的逻辑符号:
&和&&的区别?
共同点:符合基本特点:有false则false
不同点:逻辑双与:如果连接的左边的表达式位false,右边表示不执行,具有短路效果
位运算符:
基本运算符:
位与&:有0则0
位|:有1则1
位异或^:相同则为0,不同则为1
~反码:全部按位取反,0变1,1变0
三元运算符:
(表达式)?表达式1:表达式2
执行流程:判断表达式是否成立,如果为true,成立,执行表达式1的结果;不成立,执行表达式2的结果
键盘录入:
固定写法:
(a)创建键盘录入对象
Scanner sc=new Scanner(System.in);
(b)导包,位置class上面
import java.util.Scanner;
©提示并接受数据
int num=sc.nextInt();
再次接收判断
进行业务逻辑操作
(d)输出结果变量
二,今日内容
if语句
格式1:
if(表达式){
语句
}
执行流程:针对一种情况进行判断
判断表达式是否成立,如果为true,执行语句,否则不执行
注意事项:(1)针对格式1这种情况语句中的大括号可以省略,但是不建议,{}表示一个作用域
(2)if后面不能有分号,有分号的地方不能有{}
(3)if语句后面如果有分号,if语句没有意义
{
代码块
}
局部代码块的作用是限定变量的生命周期

class Ifs{
 public static void main(String[] args){
  int x=8;
  if(x>5){
   System.out.println("x的值大于5");
  }
  int y=10;
  if(x>5||x<10){
   System.out.println("x大于5");
   System.out.println("x小于10");
  }
   System.out.println("over");
 }
}

if语句的格式2:
if(表达式){
语句1;
}else{
语句2;
}
执行流程:(1)首先判断表达式是否成立
(2)如果成立执行语句1
(3)如果不成立,执行语句2

class Ifs{
 public static void main(String[] args){
  int x=8;
  int y=9;
  if(x==y){
   System.out.println("x等于y");
  }else{
   System.out.println("x不等于y");
  }
   System.out.println("over");
 }
}

能用三元运算符实现,一定能够使用if实现;如果能用if实现,不一定能使用三元运算符!
为什么?
三元运算符描述的是一种运算符,最终计算的应该是具体的结果,if语句是一种流程控制语句,如果牵扯判断是一种结构复杂的语句,不一定能够使用三元区实现!
一般情况,如果带有逻辑符号以及加上选择判断,优先采取if语句实现!
练习:键盘录入两个数据,判断最大值?
键盘录入数据,判断是奇数还是偶数?

import java.util.Scanner;
class Ifs{
 public static void main(String[] args){
  Scanner sc=new Scanner(System.in);
   System.out.println("请输入第一个值");
  int x=sc.nextInt();
   System.out.println("请输入第二个值");
  int y=sc.nextInt();
  //if语句
  
  if(x>y){
    System.out.println("x:"+x);;
  }else{
    System.out.println("y:"+y);;
  }
   System.out.println("--------------");
  //三元运算符
  int max=(x>y)?x:y;
   System.out.println("max:"+max);
   System.out.println("--------------");
  //判断奇偶性
   System.out.println("输入一个值");
  int z=sc.nextInt();
  if(z%2==1){
   System.out.println("奇数");
  }else{
   System.out.println("偶数");
  }
   
 }
}
if语句的格式3
	if(表达式1){
		语句1;
		}else if(表达式2){
		语句2;
		...
		...
		}else{
		语句n+1;
		}                         针对多个表达式进行判断
执行流程:(1)首先判断表达式1是成立,如果成立,执行语句1
(2)如果不成立,继续判断表达式2是否成立,如果成立,执行语句2
(3)如果表达式都不成立,执行else语句,执行语句n+1..
练习:键盘录入一个学生的成绩,判断学生成绩属于哪个等级

90 ~ 100 优秀
80 ~ 90 良好
70 ~ 80 一般
60 ~ 70 及格
0 ~ 60 不及格

import java.util.Scanner;
class Ifs{
 public static void main(String[] args){
  Scanner sc=new Scanner(System.in);
   System.out.println("输入一个值");
  int x=sc.nextInt();
  if(x<0||x>100){
   System.out.println("输入的数据不合法");
  }else if(x>=90&&x<100){
   System.out.println("优秀");
  }else if(x>=80&&x<90){
   System.out.println("良好");
  }else if(x>=70&&x<80){
   System.out.println("一般");
  }else if(x>=60&&x<70){
   System.out.println("及格");
  }else{
   System.out.println("不及格");
  }
 }
}

switch 语句:
格式:
switch(表达式){
case 值1:
语句1;
break;
case 值2:
语句2;
break;


default:
语句n+1;
break;
}
执行流程:(1)switch表达式,得到一个结果,首先需要和case后面的值1进行比较,如果匹配,执行语句1,遇见break,结束语句
(2)如果case后面的值1不匹配,然后case值2进行匹配,如果成功,执行语句2,break结束
(3)依次这样进行选择判断,如果都不匹配,执行default语句,结束!

import java.util.Scanner;
class Ifs{
 public static void main(String[] args){
  Scanner sc=new Scanner(System.in);
   System.out.println("输入一个值");
  int x=sc.nextInt();
  switch(x){
   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;//default 的break放在末尾可省略,在句中不可以,
  }
 }
}

面试题:byte类型可以作为switch中的表达式吗?
可以
String类型可以作为switch中的表达式吗?
jdk可以,包括1.7
long类型可以作为switch中的表达式吗?
不行
switch后面的表达式可以跟的数据类型:int,short,char,byte,jdk1.5(包括)以后,可以是eunm(枚举类型),jdk17(包括)以后,可以是Sting类型
switch语句中的注意事项:
(1)case后面只能跟常量,不能变量
(2)default语句可以在switch语句中的任意位置
如果在末尾,break可以省略;但是如果在语句中,那么break不能省略;否则,会造成一种现象,case穿透!
break:属于跳转控制语句(中断结束)
switch语句的结束条件是什么?
(1)遇见break,语句结束
(2)程序要默认执行到末尾
default语句可以在switch语句中的任意位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值