一.位运算符与三元运算符
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)结束当前循环,立即进入下次循环