学习目标:
实践Java程序
强化基础知识点
学习内容:
- 各种运算符的用法。
- 各种表达式的方法。
- 表达式与运算符的关系。
- 表达式中数据类型的转化技巧。
运算符
算数运算符、关系运算符、逻辑运算符、位运算符
例:表达式(Z+100),Z与100都是操作数,+就是运算符
赋值运算符
在程序中用“=”赋值
赋值运算符使用
//在程序中赋值采用"="
public class TestJavaGet
{
public static void main(String[] args) {
//声明整数变量num,并赋值为22
int num = 22;
//输出num的值
System.out.println("第一次赋值后,num="+num);//第一次赋值后,num=22
//将变量num的值减3之后再赋给num变量
num = num-3;
//输出后num的值
System.out.println("改变之后的值,num="+num);//改变之后的值,num=19
}
}
一元运算符
一元运算符 | 意义 |
---|---|
+ | 正号 |
- | 负号 |
! | not,否 |
~ | 取补码 |
一元运算符使用
public class TestJavaOne
{
public static void main(String[] args) {
//声明并将其类型最大值赋给a
byte a = Byte.MAX_VALUE;
//定义并赋值布尔数
boolean b = false;
//取反
System.out.println("a="+a+",~a="+(~a));//a=127,~a=-128
//取补
System.out.println("b="+b+",!b="+(!b));//b=false,!b=true
}
}
算数运算符
算数运算符 | 意义 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 余数 |
算数运算符的使用
public class TestJavaArithmetic
{
public static void main(String[] args) {
int a = 13;
int b = 4;
System.out.println("a="+a+",b="+b);//a=13,b=4
//除法
System.out.println("a/b="+(a/b));//a/b=3
//进行强制类型转换
System.out.println("a/b="+((float)a/b));//a/b=3.25
//在Java中用%进行取模操作
a = 5;
b = 3;
System.out.println("a="+a+",b="+b);//a=5,b=3
System.out.println(a+"%"+b+"="+(a%b));//5%3=2
System.out.println(b+"%"+a+"="+(b%a));//3%5=3
//整、负、浮点皆可取余
int num = 14;
//将num%3运算之后赋值给num存放
num = num % 3;
int c = -7;
//将b%c运算之后赋值给a存放
a = b % c;
//运算100%7的值存放b中
b = 100 % 7;
System.out.println("a="+a+",b="+b);//a=3,b=2
}
}
关系运算符与if语句
关系运算符 | 意义 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
if(判断条件)
语句;
关系运算符的使用
//下面程序说明了关系运算符的使用方法,关系运算符返回值为布尔值
public class TestJavaRelation
{
public static void main(String[] args) {
if(5>2)
{
System.out.println("返回值:" + (5 > 2));//返回值:true
}
if(true)
{
System.out.println("HelloWorld!");//HelloWorld!
}
//不加大括号好像也能运行
if((3+6)==(3-6))
System.out.println("I Like Java !");
}
}
递增与递减运算符
递增与递减运算符 | 意义 |
---|---|
++A | 先递加1,再运算 |
A++ | 先运算,再递加1 |
–A | A先递减1,再运算 |
A– | 先运算,再递减1 |
“++”递加运算符的两种使用方法
//下面这段程序说明了"++"的两种用法
public class TestJavaPP
{
public static void main(String[] args) {
int a =3,b = 3;
//输出a
System.out.print("a="+a);
//输出a++和a
//a=3,a++=3,a=4
System.out.println(",a++="+(a++)+",a="+a);
//输出b
System.out.print("b="+b);
//输出++b和b
//b=3,++b=4,b=4
System.out.println(",++b="+(++b)+",b="+b);
}
}
逻辑运算符
逻辑运算符 | 意义 |
---|---|
&& | AND,与 |
|| | OR,或 |
在Java中进行逻辑运算符操作
//下面这段程序是对操作进行说明,返回值为布尔型
public class TestJavaLogic
{
public static void main(String[] args) {
int a = 70,b = 75;
//与运算,两个操作数皆为真,运算结果才为真
if(a>0 && b>0)
{
System.out.println("全真为真,一假皆假,相当于电路串联");
}
if (a>0 || b>0)
{
System.out.println("全假才假,一真皆真,相当于电路并联");
}
if ((a<0)||(a>100))
{
System.out.println("输入数据有误!");
}
if ((a<60)&&(a>49))
{
System.out.println("准备补考吧!");
}
}
}
括号运算符
括号也是Java的运算符,其作用是提高括号中表达式的优先级
括号运算符在Java中的使用
//提高括号中表达式的优先级
public class TestJavaBracket
{
public static void main(String[] args) {
System.out.println("3+5+4*6-7="+(3+5+4*6-7));
//3+5+4*6-7=25
System.out.println("(3+5+4)*(6-7)="+((3+5+4)*(6-7)));
//(3+5+4)*(6-7)=-12
}
}
表达式
表达式是由常量、变量或是其他操作数与运算符所组成的。
运算符 | 范例用法 | 说明 | 意义 |
---|---|---|---|
+= | a+=b | a+b的值放入a中 | a=a+b |
-= | a-=b | a-b的值放入a中 | a=a-b |
*= | a*=b | a*b的值放入a中 | a=a*b |
/= | a/=b | a/b的值放入a中 | a=a/b |
%= | a%=b | a%b的值放入a中 | a=a%b |
程序的简洁写法
//下面是关于简洁写法的一段程序
public class TestJavaExpression
{
public static void main(String[] args) {
int a = 5,b = 8,c =6;
System.out.println("改变之前的数量是: a="+a+" ,b="+b);//改变之前的数量是: a=5 ,b=8
//b=a+b
a+=b;
System.out.println("改变之后的数是: a="+a+" ,b="+b);//改变之后的数是: a=13 ,b=8
//a=a+1
a++;
//a=a-5
a-=5;
//b=b%c
b%=c;
//a=a/b之后在计算b--
a/=b--;
System.out.println("a="+a+" ,b="+b);//a=4 ,b=1
}
}
程序的简洁写法2
//下面的程序说明了简洁表达式的使用方法,但这种方式现在已不提倡使用了
public class TestJavaExpression_2
{
public static void main(String[] args) {
int a = 10,b = 6;
System.out.println("改变之前的数:a="+a+" ,b="+b);//改变之前的数:a=10 ,b=6
//先计算a-b的值,将计算结果设给a之后再将b值加1
a-=b++;
//a=a-b
//b++
//a=10-6=4,所以a=4
//b-b+1=6+1=7,所以b=7
System.out.println("改变之后的数:a="+a+" ,b="+b);//改变之后的数:a=4 ,b=7
}
}
算数表达式
算数表达式用于数值计算,结果是一个数值
简单的算数表达式的使用
public class timesdemo
{
public static void main(String[] args) {
int a = 12345679,b = 9;
System.out.println("a*b="+a*b);//a*b=111111111
}
}
关系表达式
关系表达式程序判断语句中,由关系运算符组成,其运算结果为逻辑。
简单的关系表达式的使用
public class relationdemo {
public static void main(String[] args) {
int a = 5,b = 4;
boolean t1 = a > b;
boolean t2 = a == b;
System.out.println("a>b:"+t1);//a>b:true
System.out.println("a==b:"+t2);//a==b:false
}
}
逻辑表达式
逻辑表达式是由逻辑运算符组成的表达式,其结果也为逻辑型
逻辑表达式的使用
public class logicdemo
{
public static void main(String[] args) {
boolean t = (1 + 1 == 2) && (1 + 2 == 3);
//(1+1==2)&&(1+2==3):true
System.out.println("(1+1==2)&&(1+2==3):" + t);
}
}
条件表达式
基本形式为a?x:y,如果a值为非0,则整个表达式的值为x,否则为y。
简单的条件表达式的使用。
public class conditiondemo
{
public static void main(String[] args) {
boolean t = (1+1==2)?true:false;
//1+1==2:true
System.out.println("1+1==2:"+t);
}
}
赋值表达式
赋值表达式由赋值运算符和操作数组成,赋值运算符用于给变量赋值。
简单的赋值表达式的使用
public class attribdemo
{
public static void main(String[] args) {
int x = 12345679, y = 81, z;
z=x*y;
//x*y = 999999999
System.out.println("x*y = "+ z);
}
}
表达式的类型转换
Java是一个很有弹性的程序设计语言,只要坚持“以不流失数据为前提”的大原则,即可进行不同类型的转换,使不同类型的数据、表达式都能继续存储。
表达式类型的自动转换
//下面的程序说明了表达式类型的自动转换
public class TestJavaTypeConversion
{
public static void main(String[] args) {
char ch = 'a';
short a = -2;
int b = 3;
float f = 5.3f;
double d = 6.28;
//(ch/a)-(d/f)-(a+b)=-50.18490561773532
System.out.print("(ch/a)-(d/f)-(a+b)=");
System.out.println((ch/a)-(d/f)-(a+b));
}
}
语句
表达式由运算符和操作数组成,语句则由表达式组成。
语句的表达式
publlc class TestJavaExpression
{
public static void main(String[] args)
{
int a=1,b=2,c;
//语句
c= a+b;
System.out.println("a+b="+c);
}
}
语句中的空格
语句中的空格使程序易懂
public class spacedemo
{
public static void main(String[] args) {
int a;
a = 7;
a = a*a;
System.out.println("a*a="+a);//a*a=49
}
}
空语句
什么也不执行的语句,不完成任何功能,但同样会占用计算机资源,不建议使用空语句。
声明语句
<声明数据类型> <变量1>,<变量2>……<变量n>;
public class JavaTestStatement
{
public static void main(String[] args) {
int a;
int x,y;
int t = 1;
}
}
赋值语句
public class JavaTestStatement
{
static final double PI = 3.1415926;
public static void main(String[] args) {
double r = 25.0,s;
s = PI*r*r;
System.out.println("s="+s);
//s=1963.4953750000002
}
}
学习总结
- 括号运算符用于处理表达式的优先级
- 算数表达式的结果是一个数值
- 表达式类型转化的规则是
- 占用字节少的类型转化成占用字节较多的类型。
- 字符类型转换成int类型。
- int类型会转化成float类型。
- 表达式中若某个操作数的类型为double,则另一个操作数也会转换成double类型。
- 布尔型不能转换成其他类型。
运算符、表达式和语句是编程的主要部件,能够使系统程序直接对内存进行操作,从而大大提高程序的执行能力。学习Java运算符的用法、表达式与运算符之间的关系,以及表达式里各种变量的数据类型的转换可以对Java语句的运作过程有更深一层的认识。