案例一:打印一个心
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