首页 > 代码库 > java基础02
java基础02
表达式:操作符(运算符)与操作数组成的语句或语句的一部分
所有的表达式都有返回类型
1) 赋值表达式的返回类型为被赋值的变量的类型,返回结果为变量的值
2) 定义变量的语句没有返回类型(返回类型为void)
3) 输出语句没有返回类型
任何一个表达式,都可以和其他表达式进行运算,只要返回类型满足要求
返回类型:一句代码运算结果的类型
1.提示用户输入矩形的宽高,然后计算并输出矩形的周长
import java.util.Scanner;
public class Problem1 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输出矩形的宽:");
double width=scan.nextDouble();
System.out.println("请输出矩形的高:");
double height=scan.nextDouble();
double zhouchang=width*2+height*2;
System.out.println("矩形的周长是:"+zhouchang);
}
}
输出结果:
请输出矩形的宽:
3
请输出矩形的高:
6
矩形的周长是:18.0
2.实现下面的效果:
请输入第一个数:3
请输入第二个数:6
3*6=18
3+6=9
3/6=0.5
3-6=-3
import java.util.Scanner;
public class Problem2 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.print("请输入第一个数:");
int num1=scan.nextInt();
System.out.print("请输入第二个数:");
int num2=scan.nextInt();
System.out.println(num1+"*"+num2+"="+num1*num2);
System.out.println(num1+"+"+num2+"="+(num1+num2));
System.out.println(num1+"/"+num2+"="+(double)num1/num2);
System.out.println(num1+"-"+num2+"="+(num1-num2));
}
}
输出结果:
请输入第一个数:3
请输入第二个数:6
3*6=18
3+6=9
3/6=0.5
3-6=-3
3.利用控制台和三目运算符编写如下程序:
请输入第一个数:2
请输入第二个数:3
您输入的第一个数比第二个数小。
import java.util.Scanner;
public class Problem3 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.print("请输入第一个数:");
int num1=scan.nextInt();
System.out.print("请输入第二个数:");
int num2=scan.nextInt();
//方式1
// String a,b,c;
// a="您输入的第一个数比第二个数大";
// b="您输入的第一个数比第二个数小";
// c="两个数相等";
// String result=num1>num2?a:((num1==num2)?c:b);
//方式2
String result=num1==num2?"两个数相等":(num1>num2?"您输入的第一个数比第二个数大":"您输入的第一个数比第二个数小");
System.out.println(result);
}
}
输出结果:
请输入第一个数:3
请输入第二个数:2
您输入的第一个数比第二个数大
4.用控制台提示用户输入当前时间,若小于等于12点则输出上午好,若在12点到18点之间则输出下午好,否则输出晚上好。
import java.util.Scanner;
public class Problem4 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.print("请输入当前时间(12.32即12点32分):");
double time=scan.nextDouble();
String result=time<0?"您输入的时间有误":(time>0&&time<=12?"上午好":(time>12&&time<18?"下午好":"晚上好"));
System.out.println(result);
}
}
输出结果:
请输入当前时间(12.32即12点32分):1.3
上午好
5.提示用户输入一个正整数,根据用户的输入判断该数字是奇数还是偶数,并输出结果。(若用户输入的是负数或0则提示错误)
import java.util.Scanner;
public class Problem5 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("请输入一个正整数: ");
int num = scan.nextInt();
String result=num>0?(num%2==0?"您输入的数字是偶数":"您输入的数字是奇数"):"您输入的数字有误";
System.out.println(result);
}
}
输出结果:
请输入一个正整数: 3
您输入的数字是奇数
请输入一个正整数: 2
您输入的数字是偶数
请输入一个正整数: 0
您输入的数字有误
7.某理财公司推出一种理财服务,服务规则如下:
若用户的理财金额在50万元以下,则每年的收益按照4%计算。
若用户的理财金额在50万元以上(包括50万),则每年收益按照4.5%计算。
若用户的理财金额超过200万,除了理财收益外,还要额外给予用户收益金额的10%
开发一个控制台应用程序,让用户输入理财金额和理财期限(多少年),计算并输出理财到期后用户将得到的收益。
import java.util.Scanner;
public class Problem7 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入您要输入的理财金额(单位:万元):");
int money=scan.nextInt();
System.out.println("请输入您要输入的理财期限(单位:年):");
int year=scan.nextInt();
//sum1为方案1:若用户的理财金额在50万元以下,则每年的收益按照4%计算。
double sum1=(double)4*money*year/100;
//sum2为方案2:若用户的理财金额在50万元以上(包括50万),则每年收益按照4.5%计算。
double sum2=(double)45*money*year/1000;
//sum3为方案3:若用户的理财金额超过200万,除了理财收益外,还要额外给予用户收益金额的10%
double sum3=(double)45*money*year*(10+1)/10000;
String income= (money<=0?
"您输入的金额有误":
(money>0&&money<=50?("您获得的理财收益是:"+sum1):
(money>50&&money<=200?"您获得的理财收益是:"+sum2:"您获得的理财收益是:"+sum3)));
System.out.println(income);
}
}
输出结果:
请输入您要输入的理财金额(单位:万元):
20
请输入您要输入的理财期限(单位:年):
1
您获得的理财收益是:0.8
请输入您要输入的理财金额(单位:万元):
50
请输入您要输入的理财期限(单位:年):
1
您获得的理财收益是:2.25
请输入您要输入的理财金额(单位:万元):
300
请输入您要输入的理财期限(单位:年):
1
您获得的理财收益是:14.85
8.让用户输入身高(厘米)和体重(斤),使用BMI计算法,判断用户的身体状况(偏瘦、正常、偏胖)
BMI计算法:
BMI指数 = 体重(公斤)除以 身高(米)的平方
若BMI指数小于18.5,则偏瘦
若BMI指数大于22.9,则偏胖
其他为正常
import java.util.Scanner;
public class Problem8 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入您的身高(单位:厘米)");
double tall=scan.nextDouble();
System.out.println("请输入您的体重(单位:斤)");
double weight=scan.nextDouble();
double BMI=(weight/2)/((tall/100)*(tall/100));
String result=BMI<18.5?"偏瘦":(BMI>22.9?"偏胖":"正常");
System.out.println(result);
}
}
输出结果:
请输入您的身高(单位:厘米)
171
请输入您的体重(单位:斤)
125
正常
9.编写一个温度转换应用,让用户输入一个摄氏温度(整数),将其转换为华氏温度输出(整数)。
华氏温度 = (5/9)*(摄氏温度 - 32)
import java.util.Scanner;
public class Problem9 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入一个摄氏温度(整数)");
int tpr=scan.nextInt();
double result=((double)5/9)*(tpr-32);
int finalresult=(int)result;
// System.out.println(result);//看下输出的result结果是否正确
System.out.println("华氏温度:"+finalresult);
}
}
输出结果:
请输入一个摄氏温度(整数)
35
华氏温度:1
10.使用控制台输出语句直接输出以下赋值语句执行后变量的值(若有错误则指出错误之处)。
int a = 2.24;
int a = 2.24f;
float k = 2.24;
2.24f = float k;
float k = 2.24f;
int a += 1;
int a = 2.1 * 2;
int a = 2/3;
int a = 5/2;
int a = 5.0/2;
int a = 5.0/2.0;
bool a = 5.0/2.0==7.5/3;
bool a = 5/2 == 7.5/3;
bool a = 5.0/2.0==7.5/3 && 5/2==7.5/3;
bool a = 5/2 == 7.5/3 || 5.0/2.0 == 7.5/3;
int a=1; a=a++;
int a=1; a=++a;
int a=1; a+=a;
int a=1; a+=a++;
int a=1; a+=++a;
int a=1; a+=(a++)+(++a);
int a=1; a+=(a++)-(++a)*(a--);
int a=1; a=a/3==0?a++:++a;
int a=1; a+=a/3==0?a++:++a;
int a=1; a=a/3!=0?a++:++a;
int a=1; a+=!(a/3==0)?a++:++a;
float f = 2.0*3.0;
int a = 1; a = a++%++a;
int a = 1; a %= a++%++a;
int a = 1; a = ((a+a++)*5+ ++a)*a;
int a = "1"+2;
int a = (1+2)+"3";
string a = (1+2)+"3";
string a = 1+2+"3";
string a = "3"+2+"1";
string a = "3"+2+1;
string a = ("3"+2)+1;
int a = 5/((3+1)%5==0?7:2)*6/3;
public class Problem10 {
public static void main(String[] args) {
System.out
.println("int a = 2.24; 错误。2.24是double类型,将其赋值给int类型的变量a不能使用隐式转换。");
System.out
.println("int a = 2.24f;错误。2.24是double类型,用显式转换为float类型,不能将其赋值给int类型的变量a。");
System.out
.println("float k = 2.24;错误。2.24默认double类型,不能将其赋值给float类型的变量k,系统认为可能会溢出。");
System.out.println("2.24f = float k;错误。式子左边必须是变量,而2.24f是常量");
System.out.println("float k = 2.24f;正确,k=2.24");
System.out.println("int a += 1;错误。对变量进行运算之前要将变量a初始化,即先要给a赋值。");
System.out
.println("int a = 2.1 * 2;错误。赋值表达式的返回类型为被赋值的变量的类型,赋值表达式返回类型为double类型,而a为int类型。");
System.out.println("int a = 2/3;正确。a=0");
System.out.println("int a = 5/2;正确。a=2");
System.out
.println("int a = 5.0/2;错误。赋值表达式的返回类型为被赋值的变量的类型,赋值表达式返回类型为double类型,而a为int类型。");
System.out
.println("int a = 5.0/2.0;错误。赋值表达式的返回类型为被赋值的变量的类型,赋值表达式返回类型为double类型,而a为int类型。");
System.out.println("boolean a = 5.0/2.0==7.5/3;正确。a为false");
System.out.println("boolean a = 5/2 == 7.5/3;正确。a为false");
System.out
.println("boolean a = 5.0/2.0==7.5/3 && 5/2==7.5/3;正确。a为false");
System.out
.println("boolean a = 5/2 == 7.5/3 || 5.0/2.0 == 7.5/3;正确。a为true");
System.out.println("int a=1; a=a++;正确。a=2");
System.out.println("int a=1; a=++a;正确。输出a值为1");
System.out.println("int a=1; a=++a;正确。输出a值为2");
System.out.println("int a=1; a+=a;正确。输出a值为2");
System.out.println("int a=1; a+=a++;正确。输出a值为2");
System.out.println("// int a=1; a+=++a;正确。输出a值为3");
System.out.println("int a=1; a+=(a++)+(++a);正确。输出a值为5");
System.out.println("int a=1; a+=(a++)-(++a)*(a--);正确。输出a值为-7");
System.out.println("int a=1; a=a/3==0?a++:++a;正确。输出a值为1");
System.out.println("int a=1; a+=a/3==0?a++:++a;正确。输出a值为2");
System.out.println("int a=1; a=a/3!=0?a++:++a;正确。输出a值为2");
System.out.println("int a=1; a+=!(a/3==0)?a++:++a;正确。输出a值为2");
System.out
.println("float f = 2.0*3.0;错误。赋值表达式的返回类型为被赋值的变量的类型,赋值表达式默认为double类型,不能赋值给float类型的变量");
System.out.println("int a = 1; a = a++%++a;正确。输出a值为1");
System.out.println("int a = 1; a %= a++%++a;正确。输出a值为0");
System.out.println("int a = 1; a = ((a+a++)*5+ ++a)*a;正确。输出a值为39");
System.out.println("int a = " + "\"" + "1" + "\"" + "+2;"
+ "错误。赋值表达式返回String类型,不能赋值给int类型的变量a");
System.out.println("int a = (1+2)+" + "\"" + "3" + "\";"
+ "错误。赋值表达式返回String类型,不能赋值给int类型的变量a");
System.out.println("string a = (1+2)+" + "\"" + "3" + "\";"
+ "正确。输出a值为123");
System.out.println("string a = " + "\"" + "3" + "\"+2+" + "\"" + "1"
+ "\";" + "正确。输出a值为321");
System.out.println("string a = " + "\"" + "3" + "\"+2+1;"
+ "正确。输出a值为321");
System.out.println("string a = (" + "\"" + "3" + "\"+2)+1;"
+ "正确。输出a值为321");
System.out.println("int a = 5/((3+1)%5==0?7:2)*6/3;正确。输出a值为4");
}
}
11题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
public class P2 {
public static void main(String[] args) {
for(int a=0;a<100000;a++){
int b=a+100;
int c=a+268;
int x=(int)Math.sqrt(b);
int y=(int)Math.sqrt(c);
if(x*x==b&&y*y==c){
System.out.println(a);
}
}
}
}
输出结果:
21
261
1581
?
java基础02