练习1:假如对张三进行Java机试题测试,如果得95分以上则有奖励,否则发红包
import java.util.*;
class If01{
public static void main(String[] args){
//练习1:假如对张三进行Java机试题测试,如果得95分以上则有奖励,否则发红包
Scanner input = new Scanner(System.in);
System.out.print("请输入张三的考试成绩:");
double score = input.nextDouble();
//第一种方法:使用两个if块完成,缺点:执行速度可能慢或者效率低
/*if(score > 95){
System.out.println("有奖励");
}
if(score <= 95){
System.out.println("发红包");
}*/
//第二种方法:三目运算符
/*System.out.println(score > 95 ? "有奖励" : "发红包");
//其实上面一条语句,也可以编写为如下代码
String a = score > 95 ? "有奖励" : "发红包";
System.out.println(a); */
//第三种方法:使用if else完成
/*if(score > 95){
System.out.println("有奖励");
}else{
System.out.println("发红包");
}*/
//第四种方法:使用多重if选择结构完成
if(score > 95){
System.out.println("有奖励");
}else if(score <= 95){
System.out.println("发红包");
}
}
}
练习2:输入一个年龄,输出是老年、中年、青年还是少年
import java.util.*;
class If02{
public static void main(String[] args){
//练习2:输入一个年龄,输出是老年、中年、青年还是少年
//第一步:键盘输入年龄,存放在变量中
Scanner input = new Scanner(System.in);
System.out.print("请输入年龄:");
int age = input.nextInt();
/*
第二步:判断当前变量age中的值,来输出结果
假如年龄在60岁以上为老年,年龄在30---59岁为中年,年龄在18---29岁为青年,年龄在0---17岁为少年
*/
/*if(age >= 60){
System.out.println("是老年");
}else if(age >= 30){
System.out.println("是中年");
}else if(age >= 18){
System.out.println("是青年");
}else if(age > 0){
System.out.println("是少年");
}*/
/*
多重if选择结构中常见的问题:
1.多重if选择结构中的else if(){}是可以颠倒的,但是可能会影响程序的运行结构,解决办法将条件必须编写严谨
建议:按顺序编写条件
2.当所有条件都不满足时,则执行else{}
3.多重if选择结构中的else{}是可有可无的,如果有,则只能编写在多重if选择结构的最后,并且只能编写一个
*/
if(age >= 60){
System.out.println("是老年");
}else if(age >= 18 && age <= 29){
System.out.println("是青年");
}else if(age >= 30){
System.out.println("是中年");
}else if(age > 0){
System.out.println("是少年");
}else{
System.out.println("年龄输入有误!");
}
}
}
练习3:判断一个两位的正整数是奇数还是偶数
import java.util.*;
class If03{
public static void main(String[] args){
/*
练习3:判断一个两位的正整数是奇数还是偶数
分析得到:
假如输入的数是6,结果是输入有误
输入的数是123,结果是输入有误
输入的数是-1,结果是输入有误
输入的数是1234567,结果是输入有误
输入的数是18,结果是偶数
输入的数是10,结果是偶数
输入的数是91,结果是奇数
......
因此得到:1.一个数是未知的,就可以编写为键盘输入的数
2.判断当前的数是否是两位的正数
3.当是两位正数,则再判断是奇数还是偶数
*/
//第一步:键盘输入一个整数,存放在变量中
Scanner input = new Scanner(System.in);
System.out.print("请输入一个两位的正整数:");
int num = input.nextInt();
//第二步:判断当前num中的值是否是两位正数,其实也就是在[10,99]范围内
if(num >= 10 && num <= 99){
//表示是两位的正数
//第三步:判断当前变量num中的值是奇数还是偶数
if(num % 2 == 0){
System.out.println(num + "是偶数");
}else{
System.out.println(num + "是奇数");
}
}else{
System.out.println(num + "不是两位正数,输入有误!");
}
}
}
class Var04{
String name; //name就是成员变量
int age; //age就是成员变量
public static void main(String[] args){
int a = 18; //a就是局部变量
int b; //b就是局部变量
double c; //c就是局部变量
String d; //d就是局部变量
if(a % 2 == 0){
int x; //x是局部变量
}
}
}
class Var05{
public static void main(String[] args){
int a = 100;
double b;
//注意:在java中,如果只存放一个值,并且使用英文的单引号引起来,则为字符类型char,比如:'a' '6' '好' 'H'
char c;
String d;
b = 3.14;
c = '男';
d = "北京市";
}
}
class Var06{
public static void main(String[] args){
//byte
/*byte a = 10; //注意:在Java中,当对byte、short、char类型赋值时,如果没有超出当前数据类型取值范围是可以直接赋值的
a = 123;
a = 127;
//a = 128; //出现编译错误,原因:右侧的值128已经超出byte数据类型取值范围,因此就出现编译错误
System.out.println("a = " + a); */
//short
/*short b = -1;
b = 128;
b = 12345;
//b = 32768; //出现编译错误,原因:右侧的值已经超出当前short类型取值范围 */
//int
int c = 6;
c = 0;
c = -56789;
//c = 12345678909; //出现编译错误,原因:右侧的值已经超出int数据类型取值范围
//long
//long d = 12345678909; //出现编译错误,原因:右侧的值默认为int类型,但是该值已经超出int类型取值范围,因此就出现编译错误
//解决办法:将右侧的值变为long类型,其实也就是在该值的后面添加l或者L
long d = 12345678909L;
System.out.println("d = " + d); //d = 12345678909;
long e = 123; //不会报错,在java中取值范围小的数据类型可以直接给取值范围大的类型赋值,构成自动类型转换
}
}
class Var07{
public static void main(String[] args){
//double
double x = 0.01;
x = 198.17;
x = -6.23;
//float
//float y = 2.95; //出现编译错误,原因:右侧的值默认为double类型,而double类型取值范围大不能直接给取值范围小的类型float赋值
//解决办法:1.将右侧的值变为float类型,也就是在该值的后面添加f或者F
float y = 2.95f;
System.out.println("y = " + y);
//解决办法:2.取值范围大的类型给取值范围小类型,则进行强制类型转换,也就是在该值的前面添加一对英文的小括号,并且在括号中编写目标类型
float z = (float)589.03; //构成强制类型转换
System.out.println("z = " + z);
}
}
class Var08{
public static void main(String[] args){
//char
char x = 'a';
x = 'Y';
x = '6';
x = '男';
/*
注意:1.在Java中,整数类型与字符类型之间是可以相互转换的
2.整数值赋给字符类型变量时,存放的是码值
ASCII
'a'--->97 'b'--->98 'c'--->99 'd'--->100
'A'--->65 'B'--->66
'0'--->48
' '--->32
*/
x = 100; //x = 'd'
x = 65; //x = 'A'
//x = 48; //x = '0'
//x = 32; //x = ' '
//x = -123; //出现编译错误,原因:在java中,字符类型的取值范围:[0,65535]
System.out.println("x = " + x);
int num = 10;
num = 5678;
num = 'a'; //num = 97
num = 'A'; //num = 65
System.out.println("num = " + num);
}
}
class Var09{
public static void main(String[] args){
//boolean
boolean b = true;
b = false;
b = 1 >= 0; //b = true
b = 12 % 2 == 1; //b = false
System.out.println("b = " + b);
}
}
class Convert10{
public static void main(String[] args){
//小--->大,构成自动类型转换也叫做隐式类型转换
/*byte a = 10;
short b = a; //构成自动类型转换也叫做隐式类型转换
int c = a; //构成自动类型转换也叫做隐式类型转换
float d = a; //构成自动类型转换也叫做隐式类型转换
System.out.println("d = " + d); */
/*short x = 123;
int y = x; //构成自动类型转换也叫做隐式类型转换
long z = x; //构成自动类型转换也叫做隐式类型转换
double z2 = x; //构成自动类型转换也叫做隐式类型转换,z2 = 123.0 */
/*int a = 569;
long b = a; //构成自动类型转换也叫做隐式类型转换
long c = 10; //构成自动类型转换也叫做隐式类型转换
float d = 123; //构成自动类型转换也叫做隐式类型转换,d = 123.0
double e = -9; //构成自动类型转换也叫做隐式类型转换,e = -9.0 */
/*int num = 'a'; //构成自动类型转换也叫做隐式类型转换,num = 97
long num2 = 'A'; //构成自动类型转换也叫做隐式类型转换,num2 = 65
float i = 'b'; //构成自动类型转换也叫做隐式类型转换,i = 98.0
double j = 'c'; //构成自动类型转换也叫做隐式类型转换,j = 99.0
System.out.println("num = " + num + ",num2 = " + num2);
System.out.println("i = " + i + ",j = " + j); */
byte a = 11;
//char b = a; //出现编译,原因:在Java中,byte类型不能与char类型之间相互转换
short c = 22;
//char d = c; //出现编译错误,原因:在Java中,short类型不能与char类型之间相互转换
}
}
class Convert11{
public static void main(String[] args){
//大--->小,则必须进行强制类型转换,也叫做显式类型转换
/*double a = 2.97;
float b = (float)a; //构成强制类型转换,也叫做显式类型转换
System.out.println("b = " + b);
int c = (int)a; //构成强制类型转换,也叫做显式类型转换,不会进行四舍五入,因此可能会存在精度丢失,c = 2
System.out.println("c = " + c); */
/*char x = (char)97.65; //x = 'a'
System.out.println("x = " + x); */
/*byte a = 10;
short b = 20;
int c = a + b;
int d = a + b + 'a'; //d = 127
System.out.println("d = " + d); */
/*System.out.println(10 / 4); //2
System.out.println(8 % 3); //2
System.out.println(3 * 6); //18
System.out.println(3.0 * 6); //18.0
System.out.println(9.0 / 3.0); //3.0
System.out.println(11.0 / 5); //2.2
System.out.println(10 * 0.1 + 'A'); //66.0 */
/*byte a = 10;
short b = 20;
int c = 30;
int d = a + b - c;
int e = a + c + 'a';
long f = 40;
long g = a + b + c + f;
float h = 0.19f;
float i = a + b + c + h; */
System.out.println('a' % 2); //1
char x = 'A';
System.out.println(x + 1); //66
}
}
2.判断某一年是否为闰年(能被4整除但是不能被100整除,或者能被400整除)
import java.util.*;
class Homework02{
public static void main(String[] args){
//2.判断某一年是否为闰年(能被4整除但是不能被100整除,或者能被400整除)
//第一步:键盘输入一个年份,存放在变量中
Scanner input = new Scanner(System.in);
System.out.print("请输入一个年份:");
int year = input.nextInt();
//第二步:判断当前year变量中的值是否是闰年
//System.out.println(year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ? year + "是闰年" : year + "不是闰年");
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
System.out.println(year + "是闰年");
}else{
System.out.println(year + "不是闰年");
}
}
}
4.假如有两个数分别是8和10,存放在x和y变量中,要求:实现两个变量中的值进行互换
class Homework04{
public static void main(String[] args){
//4.假如有两个数分别是8和10,存放在x和y变量中,要求:实现两个变量中的值进行互换
//第一步:声明两个整数类型变量,并且存放8和10
int x = 8,y = 10;
System.out.println("互换前:x = " + x + ",y = " + y);
//第二步:实现两个变量中的值进行互换
//第1种方法:借助中间变量
/*int z = x;
x = y;
y = z; */
//第2种方法:不借助中间变量
x = x + y; //x = 18
y = x - y; //y = 8
x = x - y; //x = 10
//第三步:输出互换后的结果
System.out.println("互换后:x = " + x + ",y = " + y);
System.out.println(1 - 0.9); //注意:在Java中,当是浮点类型做运算时,可能会产生微小的误差,结果:0.099999
}
}