java 对数运算_Java语言 第二章 运算和语句

本文详细介绍了Java中的各种运算符,包括赋值运算、算术运算、自增自减、关系运算、逻辑运算、条件运算、位运算、移位运算等,并探讨了它们的优先级和结合性。此外,还提到了语句结构,如if、switch、while、for等控制结构的使用方法。
摘要由CSDN通过智能技术生成

1.数据运算

运算由表达式表示,表达式由运算符和运算分量组成,运算分量可以是常量、变量和方法调用Java基本运算分类图

1.1 赋值运算

1.1.1 简单赋值运算变量 = 表达式

程序执行过程:

(1):计算“=”号右端表达式。

(2):判断“=”号左右两端类型,将表达式的值的类型转换为变量的类型(符合类型转换规则的,否则要手动转换)。

(3):赋值“=”号右端至变量。

类型转换规则:byte→ short → int → float → double

赋值运算符结合性:从右至左(int i = j = 3;//赋值顺序:j、i)

1.1.2 复合赋值运算x = x

equation?tex=%5Ctheta (e)

常用的复合赋值运算符:+=、-=、*=、/=、%=

1.2 算术运算算术运算符的运算分量类型需是整数型和浮点数型。

单目运算符:+(取正)、-(取负),结合性从右至左

双目运算符: + (加)、-(减)、*(乘)、/(除)、%(求余数),结合性从左至右

1.3 自增和自减运算自增和自减运算要求运算分量是数值型(整数型,浮点数型),且只能是变量,不能是常量或表达式。

i++,表示引用变量i之后,i才进行加1,即以加1前的值作为运算结果。

++i,表示引用变量i之前,i先加1,然后以加1后的i作为运算结果。

1.4 关系运算用来表达两个表达式的值的比较,运算结果是布尔型

6个关系运算符:、>=、==、!=,前4个运算优先级高于后两个。

关系运算符的优先级低于算术运算符的优先级。

关系运算符的结合方向是自左至右。

1.5 逻辑运算用来描述逻辑表达式,结果为布尔型

&&(逻辑与)、||(逻辑或)、!(逻辑否定),!运算优先级高于算术运算符,&&和||则低于。

a&&b:a和b必须都为true,表达式为true,否则表达式为false;先计算a后计算b,若a为false,则表达式值为false。

a||b:a或b只要有一个为true,表达式为true,反之表达式为false;若a为false,则计算b,若b也为false,表达式为false。

1.6 条件运算条件运算是三目运算符

逻辑表达式 ?表达式1 : 表达式2

执行过程:

(1)计算逻辑表达式

(2)若逻辑表达式为true,计算表达式1并以其值作为运算结果。

(3)若逻辑表达式为false,计算表达式2并以其值作为运算结果。

条件运算符优先级高于赋值运算符,低于逻辑运算符,也低于关系运算符和算术运算符

条件运算符的结合性为自右至左。

1.7 其它运算1.7.1 位运算

~(位反)、&(位与)、^(位异或)、|(位或)

1.7.2 移位运算

<>(算术右移运算符)、>> >(逻辑右移位运算符)

2. 语句

一个计算过程由一系列计算步骤组成。一个计算步骤或用一个语句,或用一个计算流程控制实现。程序语言用语句描述计算步骤。Java语句结构图

2.1基本语句

2.1.1 表达式语句赋值表达式、自增自减表达式和方法调用表达式之后加上分号(;)即变成语句,称它们是表达式语句。

2.1.2 空语句空语句是只有一个分号的语句。

2.1.3 break语句break语句必须出现在多路按值选择结构或循环结构中。break语句的执行强制结束它所在的控制结构,让程序从这个控制结构的后继语句继续执行。

2.1.4 continue语句continue语句只能出现在循环结构中,continue语句的执行将忽略它所在的循环体中在它之后的语句。

简单的说:continue语句提早结束当前轮次循环,进入下一轮次循环。

2.1.5 return语句return语句只能出现在方法体中,return语句的执行将结束方法的执行,将控制返回到方法调用处。

return语句有两种形式:return;或return 表达式;

2.2 复合语句用花括号({})括住一个顺序执行的计算步骤序列描述顺序结构,这样的顺序结构称作复合语句。复合语句中的每个计算步骤可以是单个语句,也可是一个控制结构,特别情况也可以为空。

例子:

{

int temp, x, y;

temp = x;

x = y;

y = temp;

}

2.3 if语句两路条件选择结构和多路按值选择结构。if语句的一般形式:

if(条件表达式) {//两路 语句1;

}else {

语句2;

if(条件表达式) { //多路按值 语句1;

} else if (条件表达式) {

语句2;

} else {

语句3;

}

2.4 switch语句描述多路按值选择结构,比if多路按值的层级要清晰。switch语句的一般形式:

switch(表达式) {

case 常量表达式1 : 语句序列1; break;

case 常量表达式2 : 语句序列2; break;

case 常量表达式3 : 语句序列3; break;

default; 语句序列:

}正确编写switch语句的几个要求:

(1)switch后面括号内的表达式的类型只限于char、int、short、byte

(2)所有case后的常量表达式的值互相不同,类型与switch后括号内的表达式类型一致。

(3)语句序列由任意条合法的Java语句构成,也可以没有语句。

(4)default子句可以缺省,但至多出现一次,习惯总是将它写在所有case子句之后,如果有必要也可写在某个case子句之前。

(5)如果要使各种情况互相排斥,仅执行一个子句的语句序列,每个子句都需要以break语句结束。

2.5 try...catch语句常用的形式:

try {

可能会发生异常的语句块;

} catch(异常类型 e) {

发生异常时执行的语句;

} finally {

无论异常是否发生,都要执行的语句块;

}

2.6 while语句while循环结构由一个循环条件和一个作为循环体的语句组成。常用形式:

while (条件表达式) {

循环体;

}

2.7 do...while语句do...while循环由一个循环条件和一个循环体组成。常用形式:

do

循环体;

while(条件表达式);

2.8 for语句for循环由四部分组成:

(1)循环有关变量赋初始值的表达式1

(2)控制循环有关变量条件的表达式2

(3)实现循环计算的语句

(4)循环体

常用形式:

for (表达式1;表达式2;循环计算语句;) {

循环体;

}

2.9 嵌套的循环结构循环结构的循环体中又包含循环结构时,循环结构就呈嵌套的形式。

2.10 循环体中的continue语句和break语句

//例子1:/*** 有四只球队,分别叫A、B、C、D* 有三个人,分别叫甲、乙、丙* 这三个人竞猜四只球队排名,且每人只能给出两只球队的排名* 甲:A队第一名,B队第二名* 乙:C队第一名,D队第三名* 丙:D队第二名,A队第三名* 其中甲、乙、丙三人都猜对了一半* 问?这四支球队排名如何?*/

public class Champion {

public static void main(String[] args) {

int a, b, c, d;

boolean t;

for (a = 1; a <= 4; a++) {

for (b = 1; b <= 4; b++) {

if (b == a) continue;

for (c = 1; c <= 4; c++) {

if (c == a || c == b) continue;

d = 10 - a - b - c;

t = ((a == 1) != (b == 2)) && ((c == 1) != (d == 3)) && ((d == 2) != (a == 3));

if (t) {

System.out.println("A 获得了:第 " + a + "名");

System.out.println("B 获得了:第 " + b + "名");

System.out.println("C 获得了:第 " + c + "名");

System.out.println("D 获得了:第 " + d + "名");

}

}

}

}

}

}类 Champion 输出结果

//例子2/*** 求2~50内所有质数* Q&A:质数又称素数。一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数;否则称为合数。* i/2的作用就是只取出i一半的数,因为任何数都不可能是比它1/2大的数整除的(除了这个数本身)。*/

public class PrimeNumber {

public static void main(String[] args) {

int i, j;

for (j = 2; j <= 50; j++) {

for (i = 2; i <= j/2; i++) {

if (j % i == 0) break;

}

if (i > j/2) System.out.println(j + "是质数");

}

}

/*public static boolean isFirme( int num) {boolean flag = true;int temp = num / 2;for (int i = 2; i <= temp; i++) {if (num % i == 0)return false;}return flag;}*/

}类 PrimeNumber输出结果

2.11 package语句package语句必须出现在源程序文件的起始行,表示出现在该文件中的所有类都属于这个程序包。常用形式:

packge 包名;

2.12 import语句import语句用来引入所需要的类。常用形式:

import 包名.类名;

import 包名.*;

2.13 Java应用程序的基本结构常见形式:

packge 包名;

import 包名.类名;

访问权限修饰符 class 类名 {

成员变量;

成员方法;

public static void main (String args[]) {

//To - Do... }

}

3. Java程序实例3.1 画一个菱形

3.2 输入一个整数,输出小于等于这个整数的全部质数

3.3 若一个数恰好等于它的因子之和,则这个数称为“完全数”。求1000以内的所有完全数。

3.4 输入正实数x,输出平方不超过x的最大整数n

3.5 列出到目前位置所有的闰年

3.6 水仙花数是一个n(n>3)位数字的数,它等于每个数字的n次幂之和。列出999的所有水仙花数。

3.7 编程解决百级问题:"鸡翁一、值钱五;鸡母一、值钱三;鸡雏三、值钱一。百钱买百鸡。求鸡翁、鸡母和鸡雏各几何?"

3.8 回文整数是指正读和反读相同的整数,编写程序判断输入的一个整数是否是回文整数。

3.9 草地上有一堆野果,有一只猴子每天吃掉这堆野果的一半又一个,5天刚好吃完这堆野果。编程计算这堆野果一共有多少个?猴子每天吃多少个?

3.10 编写程序,按下面公式计算自然对数底e的值:

e = 1 + 1/1!+ 1/2! + 1/3! + 1/4!+...

3.11 编写程序,用如下公式计算圆周率π的近似值

π = 4 - 4/3 + 4/5 - 4/7 + 4/9 -4/11 + ...

3.12 试用Java语言表达式描述以下数学计算式或逻辑条件

(1)V = (4/3)π

equation?tex=r%5E%7B3%7D

(2)R = 1 /(1/

equation?tex=R_%7B1%7D +1/

equation?tex=R_%7B2%7D )

(3)y =

equation?tex=x%5E%7B5%7D +

equation?tex=x%5E%7B3%7D +6

(4)F =

equation?tex=M_%7B1%7D

equation?tex=M_%7B2%7D /

equation?tex=R%5E%7B2%7D

(5) sin(x)/ax + |cos(πx/2)|

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值