您的位置:首页 > 编程语言 > Java开发

java基础学习第二天

2017-03-04 09:22 357 查看
1.移位

>>左移      >>右移       >>>无符号右移

int a=3;

System.out.println(a<<1);//a=6  左移:就是乘以2的次幂运算,移几位就是几次幂

System.out.println(a>>1);//a=1  右移:就是除以2的次幂运算,移几位就是几次幂,右移时,原最高位是什么,空位就补什么

>>>无符号右移:无论原最高是什么,空位都补0

&运算:可用于获取二进制中的有效位1

6&3=2

即110 &011 ------>010----->2

|运算

6|3=7

即 110 | 011----->111------->7

异或运算^:一个数异或另一个数两次,结果还是这个数

6^3=5

即 110 ^ 011 ---->101------>110

~取反运算:

~6=-7

即 0110---取反----1110 +0001  ----->1111

一些小算法

public class MyJava {
public static void main(String[] args){
int a=3;
System.out.println(a<<1);
//最有效率运算2乘以8,通过位运算
System.out.println(2<<3);

// 通过第三方变量交换两个数据
int x=7,y=10,temp;
temp=x;
x=y;
y=x;

// 对连个整数变量的值进行变换(不需要第三方变量),通过和的形式

// 有个弊端,两个数据较大,可能会超出int范围
int c=3,d=4;
c=c+d;//c=3+4
d=c-d;//d=7-4=3
c=c-d;//c=7-3=4

// 对连个整数变量的值进行变换(不需要第三方变量),通过异或形式
c=c^d;//a=3^4
d=c^d;//b=3^4^4;
c=c^d;//c=3^4^3
}

}

三元运算符

public class MyJava {
public static void main(String[] args){
//三元运算符,格式:(条件表达式)?表达式1:表达式2
int x=1,y;
y=(x>3)?100:200;
System.out.println("y="+y);
}

}

判断结构:

if语句

// if格式1
int x=3;
if(x>3){
System.out.println(x);
}else{
System.out.println("wrong");
}
System.out.print(123);

// if格式2
/*if(条件表达式){
执行语句
}else{
执行语句
}*/
int a=3;
if(a>1){
System.out.println("yes");
}else{
System.out.println(false);
}
}

// if格式3
/*if(条件表达式){
执行语句
}else if{
执行语句

}else{
执行语句
}*/

// if格式4
/*if(条件表达式)
执行语句  只执行离if最近的一行
*/

}

switch语句

特点:

1、答案的书写没有顺序

2匹配的答案被执行,一直执行到break结束或者执行到switch语句结束

/*// switch语句
switch(表达式){
case 取值1:
执行语句;
break;
case 2 取值2:
执行语句;
break;
default:
执行语句:
break;
}*/

public static void main(String[] args){

// 需求:根据用户输入的数值,显示该数值对应的星期
/*步骤:
1、定义变量,记录数据
2、通过判断结构语句if,对该变量进行判断
3、根据不同的条件,通过输出语句显示不同的结果*/
int week=3;
if(week==1){
System.out.println("星期一");
}else if(week==2){
System.out.println("星期二");
}else if(week==3){
System.out.println("星期三");
}else if(week==4){
System.out.println("星期四");
}else if(week==5){
System.out.println("星期五");
}else if(week==6){
System.out.println("星期六");
}else if(week==7){
System.out.println("星期日");
}

/*// switch语句
switch(表达式){
case 取值1:
执行语句;
break;
case 2 取值2:
执行语句;
break;
default:
执行语句:
break;
}*/
int y=3;
switch(y){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 7:
System.out.println("星期天");
break;
default:

break;
}
}

循环结构  while  do while  for

public class UsrInput {
public static void main(String[] args){

// 循环结构
int x=-1;
while(x<3){
System.out.println("x="+x);
x++;


// 需求:求1-10的和

// while
int a=1,sum=0;
while(a<=10){
sum+=a;
a++;
}
System.out.println("sum="+sum);

// do while
a=1;
do{
a++;
}while(a<4);
System.out.println("a="+a);

// for
sum=0;
for (a=1;a<=10;a++){
sum+=a;
}
System.out.println("sum="+sum);
}

public static void main(String[] args){

// 需求:获取1-100之间的6的倍数的个数
int a=1,sum=0;
while(a<100){
if(a%6==0){
sum++;
System.out.println("a="+a);
}
a++;
}
System.out.println("sum="+sum);

for(a=1;a<5;a++){
for(int j=0;j<4;j++){
System.out.print('*');
}
System.out.println();
}

// 方法1
int z=5;
for(int i=0;i<5;i++){
for(int j=0;j<z;j++){
System.out.print('*');
}
System.out.println();
z--;
}

// 方法2
for(int i=0;i<5;i++){
for(int j=i;j<5;j++){
System.out.print('*');
}
System.out.println();
}

for(int x=1;x<3;x++){
if(x==1)
break;
System.out.print("end");//不会输出

}
for(int x=1;x<4;x++){
if(x==2)
continue;//结束本次循环,继续下次循环
System.out.print("输出");//会输出

}

/*// 需求:根据用户给定的月份数据,显示该月份在哪个季节
步骤:1、定义变量
2定义if语句*/
int x=3;
switch(x){
case 1:
case 2:
case 3:
System.out.println("春天");
break;
case 4:
case 5:
case 6:
System.out.println("夏天");
break;
default:
System.out.println("冬天");
break;
}

// 需求:对给定的整数26,进行16进制的获取

// 1、16进制是数据的一种表现形式,,好处在于可以使表现形式更短

// 原理:将二进制中的4位为一个十六进制位

// 2、获取每4位,就是获取4位中的1,可以通过&位运算的方式完成的

// 3、想要获取下4四位,可以通过对元数据进行无符号右移的方式

// 步骤:

// 1、定义变量记录该整数

// 2、对该变量进行&运算,既然是获取四位,就&四个1,二进制四个1就是十进制的15

// 3、对元数据进行无符号右移四位
int num=26;
int n1=num & 15;
System.out.println("n1="+n1);

// 对num进行右移
num=num>>>4;

// 再进行 &  15
int n2=num & 15;
System.out.println("n=2"+n2);

for(int i=0;i<8;i++){
int n=num & 15;
if(n>9){
System.out.println((char)(n-10+'A'));
}else{
System.out.println(n);
}
num=num>>>4;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: