您的位置:首页 > 其它

第三天

2017-03-29 19:51 162 查看

1. Switch结构语句

switch(表达式) {

    case 值1:

语句体1;

       break;

 case 值2:

语句体2;

       break;



 default:

语句体n+1;

       break;

}

break表示中断,结束的意思,用来结束switch语句

default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

 

case的值可以相同吗?不能

ldefault可以省略吗?可以

lbreak可以省略吗?可以

ldefault的位置一定要在最后吗?

 

关于switch表达式的类型要求:

l表达式的取值:byte,short,int,char

nJDK5以后可以是枚举

nJDK7以后可以是String

2. 常量及进制转换

Java中常量分类

字符串,整数,小数,字符,布尔

自定义常量(面向对象部分讲)

进制

Java针对整数常量有4种表示形式:

二进制

八进制

十进制

十六进制

技能点1:将其他进制转换为10进制

a) 0b1111,0234,0x789 这些转换为十进制分别是多少

0b1111:2^3+2^2+2^1+2^0=8+4+2+1=15

0234:2*64+3*8+4=156

0x789:7*256+8*16+9=1929

技能点2:将10进制转换为其他进制

b) 将20分别转换为二进制,八进制,十六进制


0b10100


024


0x14

3. 位运算符

<< 左移 将操作数的二进制数整体左移指定位数,左移之后的空使用“0”来补充

>> 右移 将操作数的二进制数整体右移指定位数,右移之后的空使用“符号位”来补充

     如果是正数,使用“0”补充

     如果是负数,使用“1”补充

>>> 无符号右移,将操作数的二进制码整体右移指定位数,

     右移之后的空位使用“0”来补充

&  相同位的两个数字都为1,则为1;若有一个不为1,则为0

任何二进制位和0进行&运算,结果是0;和1进行&运算,结果是它本身

|   相同位只要一个为1即为1。

任何二进制位和0进行|运算,结果是原值,和1进行|运算,结果是1

^异或  如果某位不同则该位为1,
否则该位为0.


  任何相同二进制位进行^运算,结果是0;不相同的二进制位运算结果是1

一、 扩展学习(自学)

第一:

要做位运算,正数按照之前的方式去计算就可以

负数,必须要先通过原码--反码--补码,

实际上计算的时候,都是按照补码来的

 

第二:

做完位运算之后,如果想知道当前这个补码代表是哪个数字

补码--》反码---》原码

 

 

在计算机内部,有符号数有3种表示法:原码,反码,补码

所有数据的运算都是使用补码进行的,即进行位运算的时候,需要先得到补码

正数

原码,反码,补码都相同

 

负数

原码:

二进制表示法,即最高位为符号位,

“0”表示正数,

“1”表示负数

 

反码

负数的反码就是对其原码逐个取反,但符号位不变。

 

补码

负数的补码是在其反码的末位加1

 

正数10

负数 -10

分别求出他们的原码,反码,补码

 

正数10

原码00001010

反码00001010

补码00001010

 

负数-10

原码:10001010

反码:11110101
(符号位不变,其他位取反)

补码:11110110

 

 

 

所以对于负数的位运算,需要先求出其补码

 

-10>>2

11110110

1111110110

 

11111101

由补码来求原码

补码-1得到反码

反码逐个取反,得到原码

 

补码:11111101

反码:11111100

原码:10000011

 

就是最终要看到结果是多少,需要计算出原码

作业:

1. 某朋友说,如果存款超过100万,则入手宝马X5,否则超过50万,则入手奥迪A6,否则超过20万,则入手比亚迪,否则超过10万则玩玩极品飞车游戏,请编写一个购车选择程序,根据输入的金额,提示可以购买的车型。

代码入下:

import java.util.Scanner;

public class car{

public static void main(String[] args){

Scanner input = new Scanner(System.in);

System.out.println("请输入你的存款数");

int money = input.nextInt();

if (money >=1000000){

System.out.println("买宝马X5");

}else if(money>=500000){

System.out.println("买奥迪A6");

}else if(money>=200000){

System.out.println("买比亚迪");

}else if(money>=100000){

System.out.println("玩极品飞车");

}

}

}

 

2. 从键盘录入学员的成绩x,根据学员的成绩x给予奖励,如果成绩x小于等于80分的不予奖励并罚一个iphone6s,成绩81<=x<=90则奖励一个iphone4,如果成绩91<x<=100则奖励一个iphone4,再奖励一个ipad

 

 

代码如下:

import java.util.Scanner;

public class Phone{

public static void main(String[] args){

Scanner input = new Scanner(System.in);

System.out.println("请输入你的成绩:");

int score = input.nextInt();

if(score<=80){

System.out.println("罚一个iphone6s");

}else if(score<=90){

System.out.println("奖励一个iphone4");

}else if(score<=100){

System.out.println("奖励一个iphone4\n再奖励一个ipad");

}

}

}

 

 

3. 从键盘录入输入3 个数a,b,c,按从大到小进行输出(难度大)

 

代码如下:

import java.util.Scanner;

public class DaXiao{

public static void main(String[] args){

Scanner input = new Scanner(System.in);

System.out.println("请输入第一个数");

int a = input.nextInt();

System.out.println("请输入第二个数");

int b = input.nextInt();

System.out.println("请输入第三个数");

int c = input.nextInt();

int temp;

if(a<b){

temp = a;

a = b;

b = temp;

}

if(a<c){

temp = c;

c = a;

a = temp;

}

if(b<c){

temp = b;

b = c;

c = temp;

}

System.out.println(a+","+b+","+c);

}

}}

 

4. 计算个人所得税,关乎大家的生计

要求使用程序实现个人所得税计算器,实现从键盘录入当月工资收入,输出应缴个人所得税。

 

工资个税的计算公式为:

应纳税额=(工资薪金所得 -“五险一金”-扣除数)×适用税率-速算扣除数

扣除标准:个税按3500元/月的起征标准算

我们此处简化五险一金,假设为0,则

如果某人的工资收入为5000元,他应纳个人所得税为:(5000—3500)×3%—0=45(元)。

税率表如下:

 

 

 

 

代码如下:

import java.util.Scanner;

public class Shui{

public static void main(String[] args){

Scanner sc = new Scanner(System.in);

System.out.println("请输入工资所得");

double money = sc.nextDouble();

double shui;

if(money<=1500){

shui = money*0.03;

}else if(money<=4500){

shui = 45+(money-1500)*0.1-105;

}else if(money<=9000){

shui = 240+(money-4500)*0.2-555;

}else if(money<=35000){

shui = 585+(money-9000)*0.25-1005;

}else if(money<=55000){

shui = 585+(money-35000)*0.3-2755;

}else if(money<=80000){

shui = 585+(money-35000)*0.35-5505;

}else{

shui = 585+(money-80000)*0.45-13505;

}

System.out.println("你的个人所得税是:"+shui);

}

}

二.二进制转换

一、课堂练习切记要多做!!!

一、请用最有效率的方式写出计算2乘以8、2乘以32的运算方式

2<<3

2<<5

二、进制转换练习

a) 0b1111,0234,0x789 这些转换为十进制分别是多少

0b1111:2^3+2^2+2^1+2^0=8+4+2+1=15

0234:2*64+3*8+4=156

0x789:7*256+8*16+9=1929

b) 将20分别转换为二进制,八进制,十六进制

0b10100

024

0x14

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: