【Java编程】编程基础--计算

目录

一、变量与计算

1.1 输入与输出

1.2 变量

1.3 赋值

二、浮点数计算

三、计算优先级

3.1 算数运算符

3.2 关系运算符

3.3 条件运算符

3.4 位运算符

3.5 逻辑运算符

3.6 赋值运算符

3.7 Java 运算符优先级

四、数学计算


详细的Eclipse软件安装步骤及方法(免费)零基础学Java语言_浙江大学

IntelliJ软件安装步骤及方法(付费)Java 速成 --安装地址未来mac下载

安装好后,在src里面创建class就可以开始啦!

一、变量与计算

任何程序都可以理解为有一些输入,将这些输入的数据记录下来,加以计算,然后输出的过程

1.1 输入与输出

1个简单的数据输入,通过 Scanner 类的nextLine() 方法获取输入的字符串,用System.out.println()方法输出。

import java.util.Scanner; 

public class hello {
 public static void main(String[] args) {
  
 Scanner s = new Scanner(System.in);             // 从键盘接收数据
     System.out.println("echo:"+s.nextLine());  // 让s这个对象读入下一行动作nextLine,接收字符串
    }
}                          

tips:

IntelliJ里面好用的快捷键来两个:

psvm + tab:public static void main(String[] args)

sout + tab:System.out.println())


1.2 变量

变量就是申请内存来存储读到的内容。当创建变量的时候,需要在内存中申请空间。

目标:用户输入1个数字,用100减去输入的这个数字,将结果显示出来。

Scanner s= new Scanner(System.in);
   System.out.println("100-"+ s.nextInt()+ "=" + (100-s.nextInt()));   

//用nextInt(这里不要求一整行,只要求数字)

上面的这段代码,是需要从用户那读2个输入s.nextInt()。第一个输入放在“100-”处显示,第二个输入参与后面”100-“的计算。

如果两次输入不一样,会出现很奇葩的效果。如:输入23,33,会显示100-23=67。

所以,我们需要做一个输入,并可以把这个输入同时用到多个地方,用很多次,这就需要变量

Scanner s= new Scanner(System.in);
int price;               // 定义变量 price
price = s.nextInt();     // 给变量赋值
 System.out.println("100-"+ price + "=" + (100 -price ));  // 将下面的值替换成变量

tips:

1. 变量定义的形式:<类型名称> <变量名称>;

2. Java是一种强类型语言,在使用前必须定义或者声明确定的数据类型。

数据类型表示在变量中可以存放什么样的数据;

3. 变量的命名只能由字母、数字和下划线组成。数字不可以出现在第一个位置;

4. 多个变量用逗号隔开:int price, amount;


1.3 赋值

用变量做各种计算,将结果直接输出或者保存到变量中。

int price=0;               // 定义变量 price ,初始值是0
price = s.nextInt();       // 给变量赋值

还是上面的这两行,price = s.nextInt() 要求s这个对象做读入下一个整数的动作,读到的结果赋值给变量price。

这里的“ = ”是一个赋值运算符,表示将“ = ”右边的值赋给左边的变量。

它不同于数学中的“等于”关系,Java里它是一个动作,是动态的。

变量初始化

<类型名称> <变量名称> = <初始值>,组合变量定义的时候,可以单独给单个变量赋初值。最好一行只定义1个变量。

Java没有强制要求所有的变量都在定义的地方做初始化,但是要求所有的变量在第一次被使用之前被赋值。

下图,变量price在定义的地方没有做初始化,所以在下面被使用的时候,会提示“初始化变量price”。(option + return)

表达式:“ = “是赋值运算符,有运算符的式子叫做表达式。

常量:定义一个常量:final int AMOUNT=100; final 是修饰符,放在int前,表示这个变量的值一旦被初始化,就不能再修改了。

【练习】最终显示结果如下票面“和”金额“需要键盘输入)

请输入票面:100
请输入金额:13
找零:100-13=87

Scanner in = new Scanner(System.in);
        int amount;
        int price;
        int change;
        System.out.print("请输入票面:");
        amount = in.nextInt();
        System.out.print("请输入金额:");
        price = in.nextInt();
        change = amount - price ;
        System.out.print("找零:"+ amount +"-"+ price +"="+ change);

二、浮点数计算

在计算机里,处理不带小数点的整数和带小数点的数(浮点数),是差别非常大的事情。

目标:输入外国人的身高,然后换算成米(例:5英尺7英寸(5+7/12)*0.3048=1.7018米)

        Scanner in = new Scanner(System.in);
        int foot;
        double inch;               // double 双精度 
        final double v = 0.3048;   // 常量表示 final double
        System.out.print("英尺:");
        foot = in.nextInt();
        System.out.print("英寸:");
        inch = in.nextDouble();    // 将nextInt 改为nextDouble
        System.out.print("身高是:"+ (foot + inch /12)*v + "米");

如果inch变量还用int类型的话,inch/12 会取整数(整数和整数的运算结果是整数)计算有差。所以,可以将inch类型定义为double。或者另外一种方法,将12改为12.0(运算符的两边有任意一个变成浮点数,那么计算结果就是浮点数)。此外,浮点计算是有误差的 System.out.println(1.2-1.1) 。


三、计算优先级

3.1 算数运算符

算数运算符

  1. 单目取正:a* +b 单目取负:a* -b 优先级高于四则运算;

2. 乘方:myInt002 = (int)Math.pow(myInt001,2) 强制转换类型(int)()的优先级高于四则运算;

3. 自增与自减(特殊算数运算)自增和自减-CSDN博客java基础(二) 自增自减与贪心规则

例1:
var d = 20;
var result = d++ + ++d + d;
//	     20  + 22  + 22  result的值是64
/*
自增的优先级是要高于加法的,然后表达式自左向右执行
1.d++  这个表达式的值是原值(d++)=20  经过这个表达式 d的值自增1 d=21;
2.++d  这个表达式的值是d+1,(++d)=d+1=22,经过这一步,d的值自增1 d=22;
3.d = 22

需要理解:a是一个变量,a++是一个表达式,++a是一个表达式。这三个的含义是不一样的。

参与运算时,一定要记得下面规则:
1. 无论时a++,还是++a,都会使变量a立即+1
2. 参与运算时,a++的值为a的原值(a未+1的值)
3. 参与运算时,++a的值为(a+1)

例2:
int a = 5;//定义一个变量;
int b = 5;         
int x = 2*++a;         
int y = 2*b++;         
 System.out.println("自增运算符前缀运算后a="+a+",x="+x);         
 System.out.println("自增运算符后缀运算后b="+b+",y="+y);

/*
运行结果:
自增运算符前缀运算后a=6,x=12
自增运算符后缀运算后b=6,y=10

例3是根据结果尝试的步骤(系统自动提示--a/2 始终为0)有问题的话,欢迎指正~

例3:
int a=2;   
  System.out.println(--a/2+(++a*2));  //--a/2 始终为0,此时a变成1|++a 自增为2,再2*2=4,最后0+4=4
  System.out.println(++a*2+--a/2); //++a 自增为3,3*2=6 此时a变成3|--a 自减为2,再2/2=1,最后6+1=7 

/*
运行结果:
4
7

3.2 关系运算符

除了一开始帮助数学家解决算数问题外,计算机的智能还体现在,能根据事先制定的规则做出判断。而能做判断的基础,是可以对数据进行比较,比较就是关于两个数据是否相等、谁大谁小?这需要用到关系运算:对两个数据之间的关系的计算。

关系运算符

关系运算的结果是一个逻辑值,逻辑值只有两种可能的值:true(真,表示成立)或false(假,表示不成立)。关系运算符优先级低于算数运算符,高于赋值运算符。在关系运算符内,==,!=优先级低。

 // int和double相等 
 int a = 5;
 double b =5.0;
 System.out.println(a == b); //true
 
// 浮点运算有误差,10个0.1和1.0不等
 double c = 1.0;
 double d = 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1;
 System.out.println(c == d);  //False

判断两个浮点数是否相等:System.out.println(Math.abs(c-d) < 1e-6);



3.3 条件运算符

条件运算符也被称为三元运算符。该运算符有3个操作数,需要先判断布尔表达式的值,再确定将前值(True)或者后值(False)赋值给变量。

      int a , b;
      a = 10;
      // 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
      b = (a == 1) ? 20 : 30;
      System.out.println( "Value of b is : " +  b );
 
      // 如果 a 等于 10 成立,则设置 b 为 20,否则为 30
      b = (a == 10) ? 20 : 30;
      System.out.println( "Value of b is : " + b );

/*运行结果
Value of b is : 30
Value of b is : 20

3.4 位运算符

位运算符

A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011

3.5 逻辑运算符

逻辑运算符

下面例子里,a的结果为5。该程序使用到了短路逻辑运算符(&&),首先判断 a<4 的结果为 false,则 b 的结果必定是 false,所以不再执行第二个操作 a++<10 的判断(a不自增),所以 a 的值为 5。

例:
        int a = 5;//定义一个变量;
        boolean b = (a<4)&&(a++<10);
        System.out.println("使用短路逻辑运算符的结果为"+b);   //false
        System.out.println("a的结果为"+a);     // 

3.6 赋值运算符

经常遇到的 a +=1 等价 a = a+1 (把左操作数和右操作数相加赋值给左操作数)

赋值运算符

3.7 Java 运算符优先级

关联性(左右结合性):有多种运算符参与运算的时候,先要考虑优先级,有相同优先级的就看结合性以决定运算顺序。所以,如果没有两个相同优先级的运算,就不存在考虑结合性的问题了。

四、数学计算


Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。

Math.E

Math.PI

Math.sin(30*Math.PI/180)

Math.abs(-13.25)

Math.max(12,14)

Math.valueOf()

Math.random()

Math.random()*(上限-下限+1)+下限

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值