package cn.tedu.var;
import java.util.Scanner;
public class Myinfo {
public static void main(String[] args) {
//创建一个扫描器,用于接收控制台输入的信息
Scanner sc = new Scanner(System.in);
System.out.println(">>");
//遇到空格或者换行停止接收
String name = sc.next();
int age = sc.nextInt();
double score = sc.nextDouble();
System.out.println("name:"+name);
System.out.println("age:"+age);
System.out.println("score:"+score);
//写法2:不建议创建3个Scanner对象,浪费内存
//此时不支持空格作为区分3个变量,认为连续输入的3个值为1个
//只能使用回车作为区分。
String name1 = new Scanner(System.in).next();
int age1 = new Scanner(System.in).nextInt();
double score1 = new Scanner(System.in).nextDouble();
System.out.println("name1:"+name1);
System.out.println("age1:"+age1);
System.out.println("score1:"+score1);
}
}
package cn.tedu.var;
public class Demoswap {
public static void main(String[] args) {
int a = 3;
int b = 4;
int tmp = a;
a = b;
b = tmp;
System.out.println("a=" + a);
System.out.println("b=" + b);
}
}
package cn.tedu.type;
public class Demo01Type {
public static void main(String[] args) {
//规则1:整数字面值默认是int类型
//规则2:小数字面值默认是double类型
//规则3:在不超范围的前提下,可以使用int字面值为byte、
// short、char类型赋值,系统会自动按对应的类型处理
byte b1=127;
//byte b2 = 128;错误
}
}
package cn.tedu.type;
public class Demo01Type {
public static void main(String[] args) {
//1:字面值规则
//规则1:整数字面值默认是int类型
//规则2:小数字面值默认是double类型
//规则3:在不超范围的前提下,可以使用int字面值为byte、short、char类型赋值,系统会自动按对应的类型处理
//float a = 123.45; //错,右边是double类型字面量,左 边是float类型,类型不一致
//int b = 1234L; //错,右边是long型的字面值,左边是int类型,类型不一致
long c = 1234; //对
double d = 123.45f; //对
byte b1=127;
//byte b2 = 128;错误,超过范围
//2:隐式转换
byte a1 = 10;
int b11 = a1; //byte转int,小转大,可以自动转换
int a2 = 10, b2 = 20;
long c2 = a2+b2; //int转long,小转大,可以自动转换
char a3 = '中'; //数值 20013
int b3 = a3; //char转int,小转大,可以自动转换
double c3 = a3; //char转double,小转大,可以自动转换
//3:强制转换:大类型转小类型可能会造成溢出和精度丢失问题!
long x = 1024L;
int y = (int)x; //long转int,大转小,需要加强制转换 符
System.out.println( y ); //1024
long i = 1024L * 1024 * 1024 * 4;
int j = (int)i; //long转int,大转小,需要加强制转换 符
System.out.println( j ); //0,整数溢出
double pi = 3.141592653589793;
System.out.println(pi);
float f = (float) pi;
System.out.println(f); //3.1415927,float类型的 小数位只有7位
}
}
package cn.tedu.type;
public class Demo02Type {
public static void main(String[] args) {
//规则1:不同类型的数据进行运算,运算结果的类型 会自动向较大类型转换
int x = 10;
long y = 3L;
// int z = x+y; //错误,int+long,结果是long型,大 转小,需要强转
int z = (int)(x+y);
System.out.println( 10 + 3.0 );//13.0 double
System.out.println( 10 - 3.0 );//7.0 double
System.out.println( 10 * 3.0 );//30.0 double
System.out.println( 10 / 3.0 );//3.3333.. double
System.out.println( 10 / 3 ); //3, int 这里不是四舍五 入,而是直接去掉小数
// 规则2:byte,short,char三种比int小的整数,参与运算时会自动转成 int 类型
byte a1 = 3, a2 = 4;
//byte a3 = a1+a2; //编译错误! a1、a2运算的最终结果 是int类型,赋值给byte是大转小
byte a3 = 3+4;//字面值在不超过范围可以int转byte,变量不行
//byte a4 = (byte)a1+(byte)a2; //编译错误! a1、a2运算的最终结果是int类型
byte a5 = (byte) (a1+a2); //正确,将运算结果强转 为byte类型
byte b1 = 10;
short b2 = 20;
//short b3 = b1+b2; //编译错误! b1、b2运算的最终结 果是int类型,赋值给short是大转小
short b3 = (short) (b1+b2); //正确,将运算结果强 转为short类型
char c1 = '中'; //20013
//char c2 = c1+5; //编译错误,c1+5的结果是int类型,赋 值给char是大转小
char c3 = (char) (c1+5);//正确,将运算结果强转为char类型--20018,串
//规则3:整数运算溢出。
// 整数运算,可以理解为是时钟转圈,超出范围不出错,而是转到一个错误的结果!
byte d4 = (byte)(127+1);
System.out.println(d4);//-128
char d5 = (char)(65535+1); //char:0-65535
System.out.println((int)d5);//0
//规则4:浮点数运算不精确
//由于Java有些小数无法精确的用二进制进行表示(记住这个结论),
// 所以某些小数在运算时可能会出现不精确的情况
System.out.println(0.1 + 0.2); //0.3, 0.30000000000000004
System.out.println(0.2 - 0.1); //0.1
System.out.println(0.1 * 0.2); //0.02, 0.020000000000000004
System.out.println(0.2 / 0.1); //2.0
System.out.println(0.3 - 0.1); //0.2,0.19999999999999998
System.out.println(0.3 / 0.1); //3.0, 2.9999999999999996
//规则5:浮点数的特殊值
//小数除0无穷大,整数除0抛出异常
System.out.println(1.0/0);//Infinity
}
}
package cn.tedu.type;
/*
已知:牛郎织女星相距:16.4 光年,光速:299792458 米/秒,喜鹊身长:0.46 米
问:牛郎织女相会,需要多少只喜鹊?
*/
public class Demo03Type {
public static void main(String[] args) {
//16.4放前面,一开始就让结果为double,不然int装不下。
double distance = 16.4*299792458 * 60 * 60 * 24 * 365 ;
double count = distance / 0.46;
System.out.println("need " + count + " birds");
}
}
package cn.tedu.home;
public class Home1 {
public static void main(String[] args) {
int i = 5;
System.out.println( i-- ); //i=5
int j = 5;
System.out.println( --j ); //j=4
int m = 7; m = m-- + --m;
System.out.println( m ); //m=12
int n = 9; n = --n + n--;
System.out.println( n ); //n=16
System.out.println( "0"+1+2+3+4 );
System.out.println( 1+"0"+2+3+4 );
System.out.println( 1+2+"0"+3+4);
System.out.println( 1+2+3+"0"+4 );
System.out.println( 1+2+3+4+'0');
}
}
package cn.tedu.home;
import java.util.Scanner;
public class Home2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("---请输入您的年龄:--- ");
short age = sc.nextShort();
if (age >= 60) {
System.out.println("您属于[老年 人]!");
} else if (age >= 40) {
System.out.println("您属于[中年 人]!");
} else if (age >= 18) {
System.out.println("您属于[青年 人]!");
} else if (age >= 0) {
System.out.println("您属于[未成年 人]!");
} else {
System.out.println("您输入的年龄有 误!");
}
System.out.println("---请输入月份:---");
int month = new Scanner(System.in).nextInt();
if (month >= 3 && month <= 5) {
System.out.println("您输入的月份为: 春 季!");
} else if (month >= 6 && month <= 8) { //
System.out.println("您输入的月份为: 夏 季!");
} else if (month >= 9 && month <= 11) { //
System.out.println("您输入的月份为: 秋 季!");
} else if (month == 12 || month == 1 || month == 2) {
System.out.println("您输入的月份为: 冬 季!");
} else {
System.out.println("您输入的月份不合 法!");
}
}
}