java基本应用_java基本应用

1.变量交换

public class Test1 {

public static void main(String[] args) {

System.out.print("输入整数a:");

//得到输入的值,保存到变量a

//Scanner是jdk类库中的类

//保存在java.util包下

int a = new Scanner(System.in).nextInt();

System.out.print("输入整数b:");

int b = new Scanner(System.in).nextInt();

//交换: 三步转圈赋值

int c = a;

a = b;

b = c;

System.out.println("a = "+a);

System.out.println("b = "+b);

}

}

2.自由落体

public class Test1 {

public static void main(String[] args) {

System.out.print("输入降落时间(秒):");

//得到输入的值,保存到变量t

double t =

new Scanner(System.in).nextDouble();

//套公式求出降落距离,保存到变量d

//double d = 0.5*9.8*t*t;

BigDecimal a = BigDecimal.valueOf(4.9);

BigDecimal b = BigDecimal.valueOf(t);

double d =

a.multiply(b.pow(2)).doubleValue();

System.out.println(

t+"秒降落了"+d+"米");

}

}

3.应用计算牛郎织女

public class Test1 {

public static void main(String[] args) {

System.out.println("牛郎织女星相距16.4光年");

System.out.println("光速 299792458 米/秒");

System.out.println("喜鹊身长 0.46 米");

System.out.println("牛郎织女相会,需要多少只喜鹊");

//1光年是多少米

long ly = 299792458L*60*60*24*365;

//16.4光年是多少米

double d = 16.4*ly;

//喜鹊数量

double r = d/0.46;

//对r向上取整

//Math.ceil(r) 取整结果是double类型

// 34534534.0

// 强转成 long 类型

long n = (long) Math.ceil(r);

System.out.println(n);

}

}

5.平年闰年计算

public class Test4 {

public static void main(String[] args) {

System.out.print("输入年号:");

int y = new Scanner(System.in).nextInt();

//把年号y的值传递到runNian()方法进行运算

//再判断该方法的返回值是真是假

boolean b = runNian(y);

if(b) {

System.out.println("闰年");

} else {

System.out.println("平年");

}

}

static boolean runNian(int y) {

//y能被4整除

//if(y%4 == 0) {

能被4整除的情况下,再判断不能被100整除

//if(y%100 != 0) {

向调用位置返回结果,

跳回到调用位置执行

//return true;

//}

//}

y能被400整除

//if(y%400 == 0) {

//return true;

//}

//能被4整除并且不能被100整除

//或者能被400整除

if((y%4==0 && y%100!=0) || y%400==0) {

return true;

}

//不是闰年,返回false

return false;

}

}

6.拆分四字节

public class Test1 {

public static void main(String[] args) {

System.out.print("输入整数:");

int n = new Scanner(System.in).nextInt();

System.out.println("--拆分成四个byte值-------------");

//把n的值传递到f1()方法进行拆分

//在f1()方法中,直接打印显示拆分结果

f1(n);

}

static void f1(int n) {

/*

* 11001101 10011110 11100100 10010011

*

* n的值,右移24,16,8,0位,再强转成byte类型

*/

byte b1 = (byte) (n>>24);

byte b2 = (byte) (n>>16);

byte b3 = (byte) (n>>8);

byte b4 = (byte) (n>>0);

System.out.println(b1);

System.out.println(b2);

System.out.println(b3);

System.out.println(b4);

/*

11001101

10011110

11100100

10010011

r

11001101 10011110 01100100 00000000

*/

int r = 0;

//字节值左移24再不带符号右移0,8,16,24

//与r求位或,结果再保存到r

r = r | (b1<<24>>>0);

r = r | (b2<<24>>>8);

r = r | (b3<<24>>>16);

r = r | (b4<<24>>>24);

System.out.println(r);

/*

* 11111111 11111111 11111111 11001101

* 00000000 00000000 00000000 11111111 &

* 00000000 00000000 00000000 11001101

*

* 255 0xff 0x000000ff

*/

r = 0;

//字节值与0x000000ff求位与,

//左移24,16,8,0位,与r求位或,

//结果再保存到r

r = r | ((b1 & 0x000000ff) << 24);

r = r | ((b2 & 0x000000ff) << 16);

r = r | ((b3 & 0x000000ff) << 8);

r = r | ((b4 & 0x000000ff) << 0);

System.out.println(r);

}

}

7. 3个数求最大值

public class Test1 {

public static void main(String[] args) {

System.out.println("输入三个整数:");

int a = new Scanner(System.in).nextInt();

int b = new Scanner(System.in).nextInt();

int c = new Scanner(System.in).nextInt();

//a,b,c三个整数的值,

//传递到max()方法,求最大值

//得到方法的返回结果,保存到变量 m

int m = max(a, b, c);

System.out.println("最大值:" + m);

}

static int max(int a, int b, int c) {

//求a,b的最大值保存到变量 max

//求max,c的最大值,保存到 max

//int max = a>b ? a : b;

//max = max>c ? max : c;

int max = a>b ? (a>c?a:c) : (b>c?b:c);

return max;

}

}

8.个人所得税

public class Test1 {

public static void main(String[] args) {

System.out.print("工资:");

double s = new Scanner(System.in).nextDouble();

//把s传递到 grsds()方法,

//来计算个人所得税

//得到方法的返回值,保存到变量 tax

double tax = grsds(s);

System.out.println(

"应缴纳个人所得税:"+tax);

}

static double grsds(double s) {

//低于起征点,不交税

if(s <= 3500) {

return 0;

}

//工资刨掉3500

s -= 3500; // s = s-3500;

//定义税率变量r和速算扣除数变量k

double r = 0;

int k = 0;

//根据s的范围,来确定r和k的值

if(s<=1500) {

r = 0.03;

k = 0;

} else if(s<=4500) {

r = 0.1;

k = 105;

} else if(s<=9000) {

r = 0.2;

k = 555;

} else if(s<=35000) {

r = 0.25;

k = 1005;

} else if(s<=55000) {

r = 0.3;

k = 2755;

} else if(s<=80000) {

r = 0.35;

k = 5505;

} else {

r = 0.45;

k = 13505;

}

return s*r - k;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值