逻辑运算符
&表示逻辑与,遇false则false
|表示逻辑或,遇true则true
^表示逻辑异或,相同则为false不同则为true
!表示逻辑非,非false则true非true则false
&&与&的区别
两个运算符得到的结果是一样的,但是&&具有短路的效果,即左边为false时不执行右边
||与|的区别
两个运算符最终结果是一样的,||具有短路效果,即左边为true时不执行右边
位运算符
&表示与,遇0则0
|表示或,遇1则1
^表示异或,相同则0,不同则1
特点是,一个数被同一个数异或两次,还是这个数本身
~表示非,非1则0,非0则1
”<<“左移,左边最高位丢弃,右边补齐0
向左移动几位就是乘以2的几次幂
”>>“右移最高位是零,左边补零,最高位是一,左边补1
向右移动几位就是除以二的几次幂
“>>>” 无符号右移,无论高位是什么左边都补0
最有效算出2*8的结果
2<<3
三元运算符的基本用法
格式是
(关系表达式)?表达式1:表达式2;
比较两个整数是否相同
int x = 5;
int y = 10;
boolean b = (x == y) ? true : false;//booolean b = (x == y)
system.out.println("b="+b);
比较三个整数最大值
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);
键盘录入的基本格式
为了让程序的数据更符合开发的数据,让程序更灵活。
格式:
import java.util.Scanner;//导入包中的类
class Demo_Scanner {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);//创建键盘录入对象
System.out.println("请输入一个整数");
int x = sc.nextInt();//将键盘录入的数据存储在x里面
System.out.println(x);
System.out.println("请输入第二个数:")
int y = sc.nextInt();
System.out.println(y);
}
}
练习
求两个数的和
import java.util.Scanner;
class test_Scanner {
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();
int sum=x+y;
System.out.println(sum);
}
}
练习
获取两个数的最大值
import java.util.Scanner;
class test_Scanner {
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();
int max = (x > y) ? x : y;
System.out.println(max);
}
}
练习
比较两个数是否相等
import java.util.Scanner;
class 练习 {
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();
boolean b = (x == y);
System.out.println(b);
}
}
练习
获取三个数中的最大值
import java.util.Scanner;
class 练习 {
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();
System.out.println("请输入第三个整数:");
int z = sc.nextInt();
int temp = (x>y)?x:y;
int ma = (temp>z)?temp:z;
System.out.println(ma);
}
}
顺序结构语句
流程控制语句:可以控制程序的执行流程
流程控制语句的分类:顺序结构,选择结构,循环结构
执行流程:从上往下,依次执行。
选择结构if
if(比较表达式){
语句体;
}
public class IFTEST {
public static void main(String[] args) {
int age=19;
if(age>=18){
System.out.println("成年了!!!");
}
}
}
注意事项:
比较表达式无论简单还是复杂,结果必须是boolean型
if语句控制的语句题如果是一条语句,大括号可以省略
一般来说有左大括号就没有分号,有分号就没有左大括号
if(比较表达式){
语句体1;
}
else {
语句体2;
}
注意事项:else后面是没有比较表达式的。
if语句和三元运算符可以完成同样的效果
区别是:
三元运算符可以实现的if语句都可以实现反之则不可以
if(比较表达式1){
语句体1;
}else if(比较表达式2){
语句体2;
}else{
语句体3;
}
swich
int x;
swich(x){//基本数据类型可以接收byte,short,char,int,string;
case 1:
语句体1;
case 2:
语句体2;
break;
default:
语句体n;
break;
public class SWITCHTEST {
public static void main(String[] args) {
String name ="zhangsan";
String gender = "man";
switch (gender) {
case "man":
System.out.println(name+"是一位"+gender);
case "women":
System.out.println(name+"是一位"+gender);
default:
SyStem.out.println(name+"是一位"+gender);
}
}
}
注意事项:
case后面只能是常量,不能是变量,而且多个case后面的值不能是相同的
default可以省略但是不建议,因为它可以给不正确的情况做出提示
break中间的不可以省略会出现case穿透
遇到break或者}switch语句就结束运行了
if和switch的区别
switch建议判断固定值的时候省略
if建议判断区间或者范围使用
例题
输入月份输出对应季节
import java.util.Scanner;
public class IFTEST {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
System.out.println("请输入月份:");
int month = sc.nextInt();
if(month>=1&&month<=3) {
System.out.println("春");
}
else if(month>=4&&month<=6) {
System.out.println("夏");
}
else if(month>=7&&month<=9) {
System.out.println("秋");
}
else{
System.out.println("东");
}
}
}
import java.util.Scanner;
public class SWITCHTEST {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入月份:");
int month = sc.nextInt();
switch(month) {
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;
case 8:
System.out.println("秋");break;
case 9:
System.out.println("秋");break;
default:
System.out.println("冬");
}
}
}