【Java自学】4、简单程序编写

编写简单的程序

问题:写一个计算矩形面积的简单程序。
过程如下:
首先,算法可以用自然语言或者伪代码描述,这个问题的自然语言描述如下:

  1. 读入矩形的长和宽;
  2. 利用公式(面积 = 长 × 宽)计算面积;
  3. 显示面积。

总体思路理清后就可以开始程序的编写了。
代码如下:

import java.util.Scanner;//从这个包中导入Scanner

public class RectangleArea {
	public static void mian(String[] args) {
		//Step 1:用户输入长、宽
		Scanner input = new Scanner(System.in);
		System.out.print("输入长:");
		double length = input.nextDouble();//长
		System.out.print("输入宽:");
		double width = input.nextDouble();//宽
		
		//Step 2:计算面积
		double area = length * width;
		
		//Step 3:显示面积
		System.out.print("该矩形的面积为:" + area);
	}
}

知识点:

  1. double与float的区别:float是单精度浮点数,内存分配4个字节,占32位,有效小数位6-7位;double是双精度浮点数,内存分配8个字节,占64位,有效小数位15位。
  2. java中默认声明的小数是double类型的,如double d=4.0,如果声明:float x = 4.0则会报错,需要如下写法:float x = 4.0f或者float x = (float)4.0其中4.0f后面的f只是为了区别double,并不代表任何数字上的意义。
  3. 对编程人员而言,double 和 float 的区别是double精度高,但double消耗内存是float的两倍,且double的运算速度较float稍慢。
  4. import语句的明确导入:import java.util.Scanner; 即明确导入java.util包中的Scanner类。
  5. import语句的通配符导入:import java.util.*; 即导入这个包中的所有类。这两种导入方法在性能上是没有什么差别的,只是告诉编译器哪里能找到这些类而已。

标识符:为了识别程序中诸如类、方法、变量的元素而采用的命名,必须遵循以下规则:

  • 由字母、数字、下划线(_)、美元符号($)组成的字符序列。
  • 不能由数字开头,只能以字母、下划线或者美元符号开头。
  • 不能是保留字/关键字,也不能是true、false、null。
  • 可以是任意长度。
  • 区分大小写,不同大小写的标识符是不同的标识符。
  • 尽量使用具有描述性的标识符,可以提高程序的可读性。
  • 尽量不要用$命名标识符,习惯上它只用于机器自动产生的源代码中。

变量:表示在程序中可能被改变的值。在对变量赋值前必须声明变量,使用前必须赋值。
变量用于表示特定类型的数据,为了使用变量,可以通过告诉编译器变量的名字及其可以存储的数据类型来声明该变量。语法及例子如下:

//语法
类型 变量名;
datatype variableName;

//例子
int a;
double radius;
double b = 4.0;//声明变量并赋值

常量:常量和变量的声明类似,但常量的值不能被改变,表示从不改变的永久数据。常量必须在同一条语句中声明和赋值,final是声明常量的关键字,如下:

//语法
final datatype CONSTANTNAME = value;

//例子
final double PI = 3.1415926;

命名习惯:
  • 使用小写字母命名变量和方法。如果是多个单词组成的名称,则第一个单词小写,之后每个单词首字母大写,如:area、areaOfCircular、sonOfABitch。
  • 类名中的每个单词首字母大写,如:Area、ComputeArea。
  • 常量的变量名全部大写,单词间用下划线连接,如:PI、SON_OF_A_BITCH。

命名虽然不影响程序的运行,但会影响程序的可读性,好的命名可以让你的程序易于理解。


数值数据类型和操作:

Java使用四种类型的整数:byte、short、int、long;和两种浮点数:double和float。

类型名存储大小从键盘中读取方法范围
byte8位带符号数nextByte()-27 ~ 27-1
short16位带符号数nextShort()-215 ~ 215-1
int32位带符号数nextInt()-231 ~ 231-1
long64位带符号数nextLong()-263 ~ 263-1
float32位,标准IEEE 754nextFloat()
double64位,标准IEEE 754nextDouble()


负数范围:-3.4028235E+38 ~ -1.4E-45
正数范围:1.4E-45 ~ 3.4028235E+38

负数范围:-1.7976931348623157E+308 ~ -4.9E-324
正数范围:4.9E-324 ~ 1.7976931348623157E+308

解释:IEEE 754标准是美国电子工程师协会通过的一个标准,用于在计算机上表示浮点数。该标准已经被广泛使用。


数值操作符
运算符名字示例
+1 + 3 = 4
-4 -1 = 3
*2 * 7 = 14
/5 / 2 = 2 ,5 / 2.0 = 2.5
%取余5 % 2 = 1

特别的,%通常用在正整数上,但也可以用于负整数和浮点数。只有当被除数是负数时,余数才是负数。例如:
-7 % 3 = -1,-12 % 4 = 0,-26 % -8 = -2,20 % -13 = 7。
取余在程序设计中是很有用的,比如判断数值的奇偶就可以用到,数%2,结果为0为偶数,结果为1为奇数。

幂运算:

使用方法Math.pow(a,b)可以计算a的b次方,该方法定义在Java API的Math类中,其中a,b为参数可以改成任意可以参与幂运算的数值,无论输入的数是什么类型,输出的永远是浮点型。
数值型直接量: 一个直接量(literal)是一个程序中直接出现的常量值。

例如以下语句中的10就是直接量:

int number = 10;

默认状况下,整型直接量是一个十进制整数。二进制直接量前要加0b或者0B开头;八进制要用0开头;十六进制要用0x或者0X开头。(其中都是数字0,而不是字母O)
浮点型直接量带小数点,默认double类型,而在数字后加f或F的则表示该数为float型,double也可以在数字后加d或者D表示double型直接量。(double型比float型要精确)
浮点型直接量还可以用科学计数法的形式表示。例如:1.234556E2(1.234556×102)或者1.23456e+2(1.23456×102),其中E表示指数,大小写是一样的,对10-2这种,只需要将E后面的符号改为负号“-”即可。

注意:123_45_678这种数字在Java中是合法的直接量。为的是提升程序的可读性,允许在数值直接量的两个数字间使用下划线,但只能用在两个数字间,数字开头和数字结尾都是不能使用的,例如_23和23_就是错误的直接量。


操作符优先级:Java的运算优先级和数学上的运算优先级是相同的,先计算括号内的,再计算乘、除、取余,最后计算加减法,如果表达式内多个同优先级运算,则遵从从左到右的顺序计算。
简捷赋值操作符:
操作符示例等价于
+=i += 8i = i + 8
-+i -= 8i = i - 8
*=i *= 8i = i * 8
/=i /*=8i = i / 8
%8i %= 8i = i % 8

自增自减操作符:

操作符名称说明
++var前置自增操作符变量var的值加1且使用var增加后的新值
var++后置自增操作符变量var的值加1但使用var原来的值
–var前置自减操作符变量var的值减1且使用var减少后的新值
var–后置自减操作符变量var的值减1但使用var原来的值

区别:

int i = 1;
int j = i++;//等价于int j=i;i=i+1;
//得到结果为:i=2,j=1
int i = 1;
int j = ++i;//等价于int i=i+1;j=i;
//得到结果为:i=2,j=2

自减操作符和自增操作符类似。


数值类型转换:

例:(int)1.7 = 1;(double)1 / 2 = 0.5(这里是只将1转换为1.0,而不是转换为1.0 / 2.0)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值