逻辑运算符的基本使用方法
- 逻辑运算符有哪些:&(并且) , |(或者) , !(非) , ^(异或) , &&(短路与) , ||(短路或)。
- 注意事项:a:逻辑运算符一般用于连接boolean类型的表达式或者值。
在Java中我们要表示一个数大于2并且小于4,不可以写成2<x<4,应该写成 x>2 & x<4 。
b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。。
算术表达式:a + b
关系表达式:a == b - 结论:&逻辑与:有false则false。
|逻辑或:有true则true。
^逻辑异或:相同为false,不同为true。
举例:情侣关系。男男,男女,女男,女女
!逻辑非:非false则true,非true则false。
特点:偶数个不改变本身。
逻辑运算符&&和&的区别
-
这两者都是表示逻辑与,只有当两边都是true时,返回true,只要有一个false则结果返回false。
&&还具有短路的功能,即如果第一个表达式为 false,则不再计算第二个表达式,例如,对于 if(str != null
-
&& !str.equals(“”))表达式,当 str 为 null 时,后面的表达式不会执行,所以不会出现` NullPointerException
如果将&&改为&,则会抛出 NullPointerException 异常。 If(x=33 & ++y>0) y 会增长, If(x==33 && ++y>0)
不会增长。
位运算的基本用法
- 位运算:&(与),|(或),^(异或) , ~(按位取反) , <<(左移) ,>>(右移) ,>>>(无符号右移)。
- 注意事项:位运算是直接对二进制补码进行运算。
- 结论:
&:有0则0
|:有1则1
^:相同则0,不同则1
~:按位取反 0变1 1变0
三元运算符的基本用法
-
格式:(关系表达式) ? 表达式1 : 表达式2;
int a=(10>20)?30:50; a=50 -
三元运算符的执行流程:
计算关系表达式的值,如果为true, 运算后的结果是表达式1;
如果为false,运算后的结果是表达式2; -
列:class SanYuanYSF{
public static void main(String[] args) {
int a=10;
int b=20;
int c=100;int max=a>b?a:b; int maxmax=max>c?max:c; System.out.println("最大值是"+maxmax); }
}
键盘录入的基本格式
-
为什么要使用键盘录入数据:
a:为了让程序的数据更符合开发的数据。
b:让程序更灵活一下。 -
如何实现键盘录入:
a:导包
格式:
import java.util.Scanner;
位置:
在class上面。
b:创建键盘录入对象
格式:
Scanner sc = new Scanner(System.in);
c:通过对象获取数据
格式:
int x = sc.nextInt();列:import java.util.Scanner; //1.导入程序包 class ScannerDemo{ public static void main(String[] args) { //Scanner Java提供的类可以用来获取从键盘中输入的数据 //2.创建键盘录入对象 Scanner sc=new Scanner(System.in); System.out.println("请输入一个整数"); //调用该方法,录入一个整数 int num=sc.nextInt(); //输出这个数字 System.out.println("你输入的数字是:"+num); } }
顺序结构语句
- 什么是流程控制语句:
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。
也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。
而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。 - 流程控制语句的分类:
顺序结构;
选择结构;
循环结构。 - 顺序结构
是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
总的来说:写在前面的先执行,写在后面的后执行。 - 执行流程:从上往下,依次执行。
选择结构if语句格式1及其使用
-
概述:也被称为分支结构。
选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,
逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。 -
选择结构的分类
if语句
switch语句 -
if语句有几种格式
格式1
格式2
格式3 -
if语句的格式1
if(比较表达式或者是boolean类型的值) {
语句体;
} -
执行流程:
先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体;
如果是false,就不执行语句体;列:class IFDemo{ public static void main(String[] args) { //条件选择语句 if /* if(要一个结果是boolean类型的表达式或者值){ //当()里面的结果是true时就会执行{}大括号里面的语句体 //语句体 }*/ int a=100; int b=100; if(!(a==b)){ System.out.println("Hello World!"); } System.out.println("Hello World!"); } }
选择结构if语句格式2及其使用
-
if语句的格式2
if(比较表达式) { 语句体1; }else { 语句体2; }
-
注意事项:else后面是没有比较表达式的,只有if后面有。
-
执行流程:
首先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体1;
如果是false,就执行语句体2;import java.util.Scanner; class IFDemo3{ public static void main(String[] args) { /* 案例演示 a:获取两个数据中较大的值 b:判断一个数据是奇数还是偶数,并输出是奇数还是偶数 */ Scanner sc=new Scanner(System.in); System.out.println("请输入第一个整数"); int a=sc.nextInt(); System.out.println("请输入第二个整数"); int b=sc.nextInt(); //采用if else 来做 获取两个数的最大值 //int max=a>b?a:b; //获取和输出打印是两个概念 int max; if(a>b){ max=a; }else{ max=b; } System.out.println("最大值是"+max); } }
选择结构switch语句及其解释
switch语句的格式
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
....
default:
语句体n+1;
break;
}
- switch语句的格式解释
(1):switch表示这是switch语句
表达式的取值:byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是String
(2):case后面跟的是要和表达式进行比较的值
(3):语句体部分可以是一条或多条语句
(4):break表示中断,结束的意思,可以结束switch语句
(5):default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似. - 执行流程
先计算表达式的值
然后和case后面的匹配,如果匹配成功就执行对应的语句,遇到break就会结束,否则执行default控制的语句。
选择结构if语句和switch语句的区别
-
在做判断的时候,我们有两种选择,if语句和switch语句,那么,我们到底该如何选择使用那种语句呢?
if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句使用场景:
针对几个常量值的判断列:import java.util.Scanner; class IF{ public static void main(String[] args) { /* 分别用switch语句和if语句实现下列需求: 键盘录入月份,输出对应的季节 3 4 5 春季 6 7 8 夏季 9 10 11 秋季 12 1 2 冬季 */ Scanner sc=new Scanner(System.in); System.out.println("请输入 1---12 中的一个整数"); int num=sc.nextInt(); if(num==3||num==4||num==5){ System.out.println("春季"); }else if(num==6||num==7||num==8){ System.out.println("夏季"); }else if(num==9||num==10||num==11){ System.out.println("秋季"); }else if(num==12||num==1||num==2){ System.out.println("冬季"); }else{ System.out.println("不符合条件"); } }
列:import java.untl.Scanner; public class jam{ public class void main(String[]args){ String[] arr ={"星期一","星期二",‘星期三","星期四","星期五","星期六","星期天",} Scanner sc=new Scanner(System.in); System.out.println("请在1~7中选择输入"); int i=sc.netInt(); switch (i){ case1: System.out.println("星期一"); breaak; case1: System.out.println("星期二"); breaak; case1: System.out.println("星期三"); breaak; case1: System.out.println("星期四"); breaak; case1: System.out.println("星期五"); breaak; case1: System.out.println("星期六"); breaak; case1: System.out.println("星期天"); breaak; } } }