一.位运算符与三元运算符
1.位运算符
针对多个数据使用补码进行操作计算结果
2.基本的位运算符
位与&: 有0,则0
位或|: 有1,则1
位异或^:相同则为0,不同则为1
反码~: 按位取反,全部都0变1,1变0
class Wei{ public static void main(String[] args){ System.out.println(3 & 4) ; //结果为:0 System.out.println(3 | 4) ; //结果为:7 System.out.println(3 ^ 4) ; //结果为:7 System.out.println(~ 3) ; //结果为:-4 } }
3.位异或^另外一个特点:
一个数据被另一个数据位异或两次,其值是它本身
4.位移符号
<<:左移符号 将这个数据的补码向左移动指定位数,右边不够的补0,将左边多余的移动位数丢弃掉!
>>:右移符号 将这个数据的补码向右移动指定位数,如果最高符号位为0,左边则补0,如果最高符号 位为1,左边则补1,将右边多余的移动位数丢弃掉!
>>>:无符号右移 无论最高符号位是1还是0,始终左边补0;
结论: <<: 将<<符号左边数据乘以2的移动次幂
>>: 将>>符号左边的数据除以2的移动次幂
5.三元运算符
三元运算符格式: (表达式)?执行语句1(具体的结果):执行语句2(具体的结果);
执行流程: 先判断表达式的结果是否成立,如果结果为true,就执行成立的语句1;
否则不成立,则执行不成立的语句2;
二.键盘录入数据
作用: Jdk提供了一个Scanner:文本扫描器类
步骤: 1)导包 import java.util.Scanner;
2)创建文本扫描器对象 Scanner 对象名 = new Scanner(System.in) ;
3)提示并录入数据 System.out.println("请您输入数据:") ;
int 变量名= 对象名.nextInt() ;
4)完成操作需求
//导包 import java.util.Scanner ; class ScannerDemo{ public static void main(String[] args){ //创建文本扫描器对象 Scanner sc = new Scanner(System.in) ; //提示并录入数据 System.out.println("请您输入一个数据:") ; int a = sc.nextInt() ; //String num = sc.nextLine() ; //直接输出 System.out.println("您输入的数据是:"+a) ;
三.流程控制语句
1. 顺序结构语句
特点: 当进入到类中之后,jvm调用main方法,代码由上而下依次加载
class ShunXu{ public static void main(String[] args){ System.out.println("a") ; System.out.println("b") ; System.out.println("A") ; System.out.println("B") ; System.out.println("0") ; } }
2.选择结构语句之if
1)格式1:if(表达式){
语句;
}
执行流程: 首先表达式是否成立,成立,则执行该语句 不成立,不会进入if里面;
class IfDemo1{ public static void main(String[] args){ if(x>=10){ System.out.println("x大于或者等于10") ; } if(x<10){ System.out.println("x小于10") ; } } }
2)格式2:if(表达式){
语句1;
}else{
语句2;
}
执行流程: 1.先判断表达式是否成立,如果成立,执行执行语句1;
2.如果不成立,则执行语句2;
class IfDemo2{ public static void main(String[] args){ if(1==2){ System.out.println("这个两个数相等") ; }else{ System.out.println("这个两个数不相等") ; } } }
3)格式3: if(表达式1){
语句1 ;
}else if(表达式2){
语句2;
}else if(表达式3){
语句3;
...
...
...
}else{
语句n+1;
}
执行流程: 1.首先判断表达式1是否成立,如果成立,则执行语句1;
2.如果上面表达式1不成立,继续判断表达式2是否成立,如果成立,执行语句2
3.如果表达式2也不成立,继续判断表达式3是否成立,如果成立,执行语句3
4.如果上面的条件表达式都不成立,则执行最终语句n+1 ;
import java.util.Scanner; class IfDome3{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("请输入送货件数"); int num = sc.nextInt(); if(num<0 || num>200){ System.out.println("你输入的数据不合法"); }else if(num>=150 && num<=200){ System.out.println("优秀"); }else if(num>=100 && num<150){ System.out.println("中等"); }else if(num>=50 && num<100){ System.out.println("及格"); }else{ System.out.println("最差"); } } }
3.选择结构语句之switch
格式: switch(表达式){
case 值1:
语句1;
break ;
case 值2:
语句2;
break ;
...
...
...
default:
语句n+1 ;
break ;
}
执行流程: 1.switch中的表达式的结果值和case语句匹配,值1和结果匹配,就执行语句1,遇见 break,switch结束;
2.值1和switch表达式结果不匹配,继续判断值2是否匹配,如果匹配,就执行语句 2,switch语句结束
3.如果case语句后面值都不匹配,这个执行default语句,执行语句n+1,程序执行到末尾 结束...
import java.util.Scanner ; class SwitchDome{ public static void main(String[] args){ Scanner sc = new Scanner(System.in) ; System.out.println("请您输入一个数据(1-7)") ; int week = sc.nextInt() ; 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 ; } } }
4.循环控制语句for
格式: for(初始化语句;条件表达式;步长语句/控制体语句){
循环体语句;
}
执行流程: 1.初始化语句对变量进行赋值
2.判断条件表达式是否成立; 如果是成立,执行循环体语句;
3.继续执行控制体语句
4.继续回到2里面判断 如果是成立,执行循环体语句;
继续回到3
5.一直执行到条件不成立结束;
class ForDemo{ public static void main(String[] args){ for(int x = 1 ; x <=10 ; x ++ ){ System.out.println("HelloWorld") ; } } }
5.循环控制语句while
格式: while(条件表达式){
循环体语句;
控制体语句;
}
执行流程: 1.先初始化赋值
2.判断条件表达式是否成立,成立,则执行循环体语句
3.执行控制体语句---继续判断条件是否成立,----循环
4.执行到条件表达式不成立,while语句结束
class WhileDemo{ public static void main(String[] args){ int x = 1 ; while(x<=10){ System.out.println("helloworld") ; x ++ ; } } }
6.循环控制语句Do while
格式:do{
循环体语句;
控制体语句;
}while(条件表达式) ;
执行流程:1.初始化语句赋值
2.执行循环体语句
3.执行控制体语句
4.条件表达式判断,如果条件成立,继续执行循环体
5.条件表达式不成立,语句结束;
class DoWhileDemo{ public static void main(String[] args){ int x = 6 ; do{ System.out.println("HelloWorld") ; x ++ ; }while(x<=5) ; } }
四.跳转控制语句
1.break ;中断,结束
1)只能在switch或者循环语句中使用; 单循环for循环中使用
2)不能单独使用
2.继续
1)不能单独使用
2)结束当前循环,立即进入下次循环