Java案例(1-10)

案例一:打印一个心 

public class HelloWorld {
    public static  void main( String[] args){
        //案例一:输出心形
        System.out.print("\t");
        System.out.print("*");
        System.out.print("\t\t\t\t\t\t\t\t");
        System.out.println("*");
        System.out.print("*\t\t");
        System.out.print("*\t\t");
        System.out.print("I love you\t\t");
        System.out.print("*");
        System.out.println("\t\t*");
        System.out.print("\t*");
        System.out.print("\t\t\t\t\t\t\t\t");
        System.out.println("*");
        System.out.print("\t\t*");
        System.out.print("\t\t\t\t\t\t");
        System.out.println("*");
        System.out.print("\t\t\t*");
        System.out.print("\t\t\t\t");
        System.out.println("*");
        System.out.print("\t\t\t\t*");
        System.out.print("\t\t");
        System.out.println("*");
        System.out.print("\t\t\t\t\t*");
    }
}

案例二:定义圆周率并赋值为3.14,现有3个圆的半径为1.2、2.5、6,求它们的面积

double PI=3.14;
double r1=1.2;
double r2=2.5;
int r3=6;
System.out.println("第一个圆的面积是"+PI*r1*r1);
System.out.println("第二个圆的面积是"+PI*r2*r2);
System.out.println("第三个圆的面积是"+PI*r3*r3);

 

第一个计算的值应该是4.5216为什么会出现4.52159999999? 

float PI=3.14f;
float r1=1.2f;
float r2=2.5f;
int r3=6;
System.out.println("第一个圆的面积是"+PI*r1*r1);
System.out.println("第二个圆的面积是"+PI*r2*r2);
System.out.println("第三个圆的面积是"+PI*r3*r3);


出现这样的结果的原因是float和double的精度不高,十进制的小数转成二进制的小数没有办法连续。解决方法是同乘同除,或者四舍五入,或者采用BigDecimal类精度高一些。


案例三:华氏温度转摄氏温度

int F=80;
double T=(F-32)/1.8;
System.out.println("华氏温度:"+F+"F");
System.out.println("摄氏温度:"+T+"C");


 

案例四:自动类型提升和强制类型转换

double d1=12; //自动类型提升
//编译失败 int i1=d1;
int i2=(int)d1;
System.out.println(i2);

long l1=123;
//编译失败 short s1=l1;
short s2=(short)l1;
System.out.println(s2);

案例五:公安局身份登记 要求填写自己的姓名、年龄、性别、体重、婚姻状况(已婚用true表示、单身用false表示)、联系方式等等。
//考察点:数据类型

String name="张三";
int age=18;
char gender='男';
double weight=49.5;
boolean ismarried=false;
String phoneNumber="18827053016";
System.out.println("姓名"+name);
System.out.println("年龄"+age);
System.out.println("性别"+gender);
System.out.println("体重"+weight);
System.out.println("婚姻状况"+ismarried);
System.out.println("电话"+phoneNumber);

练习六 

//编译不通过 String str1 = 4;
String str2 = 3.5f + "";
System.out.println(str2); //输出 3.5
System.out .println(3+4+"Hello!"); //输出7Hello!
System.out.println("Hello!"+3+4); //输出Hello!34
System.out.println('a'+1+"Hello!");//98Hello!
System.out.println("Hello"+'a'+1); //Helloa1

System.out.println("*    *");
System.out.println("*\t*");
System.out.println("*" + "\t" + "*");
System.out.println('*' + "\t" + "*");
System.out.println('*' + '\t' + "*");
System.out.println('*' + "\t" + '*');
System.out.println("*" + '\t' + '*');
System.out.println('*' + '\t' + '*');

 案例七:随意给出一个百位数打印个十百位的数字

int num=531;
int bai=num/100; //5
int shi=num%100/10; //3
int ge=num%10;  //1
System.out.println(bai);
System.out.println(shi);
System.out.println(ge);
//拓展:千位数
int num1=5312;
int qian=num1/1000; //5
int bai1=num1/100%10; //3
int shi1=num1/10%10; //1
int ge1=num1%10;  //2
System.out.println(qian);
System.out.println(bai1);
System.out.println(shi1);
System.out.println(ge1);

案例八:为抵抗洪水,战士连续作战89小时,计算一共多少天零几个小时?

int hour=89;
int day=hour/24;
int hour1=89%24;
System.out.println("工作"+day+"天,"+hour1+"小时");

 案例九:自增、自减的练习

int i1 = 10;
int i2 = 20;
int i = i1++;
System.out.print("i="+i); // 10 先取后加
System.out.println("i1="+i1);// 11
i = ++i1;
System.out.print("i="+i);  //12
System.out.println("i1="+i1);  //12
i = i2--;
System.out.print("i="+i); //20
System.out.println("i2="+i2); //19
i = --i2;
System.out.print("i="+i); //18
System.out.println("i2="+i2);// 18

System.out.println("5+5=" + 5 + 5); //字符串相加

byte bb1 = 127;
bb1++;
System.out.println("bb1 = " + bb1);//-128

int m = 1;
int j = m++ + ++m * m++;
System.out.println("j = " + j);//8

int n = 2;
int l = n++;
System.out.println(l); //2

int m1 = 2;
m1 = m1++; //(1)先取 b的值“2”放操作数栈 (2)m再自增,m=3 (3)再把操作数栈中的"2"赋值给 m,m=2
System.out.println(m1); //2

 案例十:区分&和&&

int a = 3;
int b = 4;
int c = 5;
System.out.println((a > b) & (a++ > c)); // false
System.out.println("a = " + a);          //4
System.out.println((a > b) && (a++ > c)); //false 不再计算右边
System.out.println("a = " + a);          //4
System.out.println((a == b) && (a++ > c));//false 不再计算右边
System.out.println("a = " + a);           //4

boolean x = true;
boolean y = false;
short z = 42;
if ((z++ == 42) && (y = true)) { //true,z=43
    z++;                         //z=44
        }
if ((x = false) || (++z == 45)) { //true,z=45
     z++;                         //z=46
        }
System.out.println("z=" + z);    //z=46

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值