首页 > 代码库 > 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