java中的是实型数_第二讲 Java中的数据和运算

第二讲 Java中的数据和运算

主要内容

Java输入输出的初步运用

Java的标识符和保留字

Java的基本数据类型

Java基本数据类型转换

Java中的运算符

Java程序的输入输出

问题:读取一个整数,输出该数的平方

算法

步骤一:读取一个整数字符串

步骤二:将字符串转换成整数Integer.parseInt(s)

步骤三:运算处理

步骤四:输出结果

程序清单[Square.java]

import javax.swing.*;

public class Square{

public static void main(String args[]){

String s=JOptionPane.showInputDialog("请输入一个整数:");

int n=Integer.parseInt(s);

int m=n*n;

System.out.println("你输入的数是:"+s);

System.out.println("其平方值是:"+m);

}

}

程序解析

²JOptionPane是javax.swing包中的类

²showInputDialog是JOptionPane的方法:显示一个输入对话框

²System.out.println(…):显示输出。

[注意]可以“+”号连接不同类型数据。

思考

1.如何交互输入数据?

2.用JoptionPane的showInputMessage方法输入的是什么类型的数据?

3.一个数字组成的字符串如何转化成整数?

4.Java程序如何向字符窗口输出数据?

练习:输入一个圆半径,输出其面积。

Java的标识符和保留字

标识符的定义规则

在Java程序中,包、类、属性、方法、对象、变量、符号常量、数组等等都要有名称。这名称即为“标识符”。

标识符的定义规则:

²由字母、数字、_和$组成

²开头字符必须是字母、下划线或$(不可以数字开头)

[注意]大小写敏感。myname与Myname是两个不同的标识符。

定义三原则:见名知义、规范大小写、不可用Java保留字

练习:从以下字符串中挑出合法的Java标识符。

2tow

Mary5

else

Hello world

bob

do

cheese_eat

Hello!

保留字(关键字)

保留字(reserved word):是Java语言规定了特定含义的标识符。

对于保留字,用户只能按照系统规定的方式使用,不能自行定义。

保留字一律用小写字母表示。

abstract

for

private

break

finally

return

byte

final

static

boolean

if

switch

catch

import

short

case

implements

synchronized

class

instanceof

super

char

interface

try

continue

int

true

do

length

this

default

long

throw

double

new

threadsafe

else

null

throws

extends

native

transient

false

package

void

final

public

while

float

protected

……

Java的基本数据类型

指定变量的数据类型可确定变量所需分配的内存尺寸。

char ch;

float x;

int a,b,c;

布尔型——boolean

布尔型常量:true和false (它们不对应于任何整数值!)

布尔型变量的定义如:boolean b=true;

字符类型——char

字符常量:用单引号括起来的一个字符,如‘a’,‘A’;

与C相同,Java也提供转义字符,如下图:

转义字符

描述

\ddd

1到3位8进制数所表示的字符(ddd)

\uxxxx

1到4位16进制数所表示的字符(xxxx)

如\u0061表示’a’

\'\"

单引号字符和双引号字符

\\

反斜杠

\r

回车

\n

换行

\t

横向跳格

\f

走纸换页

\b

退格

字符型变量的定义如:char c=‘a’;

说明:Java中的字符型数据是16位无符号型数据,它采纳Unicode集。

练习:编程测试16进制数41,51对应的字符,并相隔一个tab位输出。

整型

整型常量可用三种进制表示:

十进制整数:如:123,-456,0

八进制整数:0ddd(注意:ddd<=377)

如0123表示十进制数83,-011表示十进制数-9。

十六进制整数:以0x或0X开头

如0x123表示十进制数291,-0X12表示十进制数-18。

练习:分析程序运行结果。

public class DataTest{

public static void main(String[] args){

int x=010;

System.out.println("x="+x);

int y=0x10;

System.out.println("y="+y);

}

}

整型变量有byte、short、int、long

数据类型

字节数

所占位数

数的范围

byte

1

8

-27~27-1

short

2

16

-215~215-1

int

4

32

-231~231-1

long

8

64

-263~263-1

注意:在进行处理时应注意变量的范围

byte x=129;出错!

byte x=(byte)129;结果x的取值是-127

原因:整数在内存中以补码保存。129—10000001-- -127

思考

1.在Java中一个字符数据开销字节数?

2.在Java中怎样给出一个八进制整常数?

3.在Java中怎样给出一个十六进制整常数?

4.在Java中如何输出数据?

5.Java表达整型的数据类型与C相比异同点?

浮点型(实型)

实型常量有两种表示形式

²十进制数形式:由数字和小数点组成,如0.123, .123, 123.,123.0

²科学计数法形式:如:123e3或123E3

其中e或E之前必须有数字,且e或E后面的指数必须为整数。

说明:单精度常量以f或F为后缀。双精度常量以d或D作后缀(默认)。

实型变量

数据类型

所占位数

数的范围

float

32

3.4e-038~3.4e+038

double

64

1.7e-308~1.7e+308

字符串型

字符串常量是用双引号作为起止符的字符序列。如:”Hello”

字符串变量定义如:String s1,s2;String s1=”Hello”;

练习:试分析下面程序中的各变量

public class Assign {

public static void main(String[] args){

intx ,y ;

floatz = 1.234f ;

doublew = 1.234 ;

booleanflag = true ;

charc ;

Stringstr ;

请加入语句:

在第一行输出x、y、z、w的值

在第二行输出c、flag、str的值

c = 'A';

str ="bye";

x = 12 ;

y = 300;

}

}

思考

1.如何给出一个单精度常数?

2.字符常量和字符串的定界符分别是什么?

3.在Java中一个int型数据开销字节数?

4.在Java中用什么类型的变量存储一个逻辑值?

Java基本数据类型转换

自动类型转换

整型、实型、字符型数据可以混合运算。步骤:先转化为同一类型,再运算。

转换总是从低级到高级,按下图所示:

低--------------------------------------------->高

byte,short,charàintàlongàfloatàdouble

思考

1、x+y的值是什么类型?

2、x+y+z的值是什么类型?

3、a+b的值是什么类型?

4、a-x-y的值是什么类型?

5、x+c是值是什么类型?

int x;

byte y;

long z;

float a;

double b;

char c;

强制类型转换

高级数据要转换成低级数据,需用到强制类型转换,如:

y=(byte)x;

x=(int)(a+b);

a=(float)b;

阅读程序,分析运行情况

public class CharandInt1{

public static void main(String[] aa){

char y='a';

System.out.println(y);

}

}

public class CharandInt2{

public static void main(String[] aa){

int x=2;

char y='a';

System.out.println(y+x);

}

}

[思考]如何修改程序使之输出结果为”c”?

class Test1{

public static void main(String[] aa){

char a='\u0041';

int b=a;

float c=b;

double d=c;

System.out.println(a+"\t"+b+"\t"+c+"\t"+d);

}

}

class Test2{

public static void main(String[] aa){

double e=65.5;

float f=e;

int g=f;

char h=g;

System.out.println(e+"\t"+f+"\t"+g+"\t"+h);

}

}

Java中的运算符

算术运算符

双目运算符

运算符

示例

含义

+

op1 + op2

加法运算

-

op1 - op2

减法运算

*

op1 * op2

乘法运算

/

op1 / op2

除法运算

%

op1 % op2

模运算(取余)

说明:

1)JAVA对“+”运算进行了扩展,字符串连接、数字与字符串连接

如:  String s;

s="s="+4*5;

2) JAVA中的"%"取模运算,可对浮点数进行。符号同第一个操作数。

如52.3%10à2.3

class TestMod{

public static void main(String[] aa){

System.out.println(10%3);

System.out.println(10%-3);

System.out.println(-10%3);

System.out.println(-10%-3);

}

}

自增自减运算符

运算符

示例

含义

前缀++

++ x

加1后再引用

前缀--

-- x

减1后再引用

后缀++

x ++

先引用,再加1

后缀--

x --

先引用,再减1

说明:

1) ++与--运算符只能用于变量。错例:5++,++(a+b)

2) ++与--运算时结合方向自右向左。-i++相当于-(i++)

3) 两个+号(或-号)之间不能有空格

4) 应避免使用复杂的表达式

算术表达式:用算术运算符与括号将运算对象连接起来的、符合Java规则的式子。

运算级别:先*、/、%后+、-,“左结合”原则。如:n * -2, -n / -2

赋值运算符

基本赋值运算

形式: =

作用:将右边表达式的值计算赋给左边的变量。

赋值语句:赋值表达式加上分号即可。

public class S3 {

public static void main(String[] args){

int a;

int b;

int c=(a=5)+(b=13);

System.out.println(a+""+b+""+c);

}

}

复合赋值运算

形式:=

à=()

分别举例:

运算符

示例

含义

+=

count += 2

count = count + 2

-=

count -= 2

count = count - 2

*=

count *= 2

count = count * 2

/=

count /= 2

count = count / 2

类型转换

赋值时如果赋值号两边类型不同,则有如下两种可能:

²自动转换。条件:等号右式类型比左边变量类型简单。

²出错。出错信息: possible loss of precision

关系运算符

运算符

示例

含义

==

op1 == op2

等于

!=

op1 != op2

不等于

<

op1 < op2

小于

>

op1 > op2

大于

<=

op1 <= op2

小于等于

>=

op1 >= op2

大于等于

注意:

[1] "= ="不要写成"="

关系表达式

op1 op2

说明:

1)Java中,任何类型的数据(包括简单类型和复合类型),都可以通过"=="或"!="来比较是否相等。

2)浮点数的比较小心慎用

3)不同类型的数值量以及字符之间可以进行各种大小比较

class T1{

public static void main(String[] aa){

char x='4';

int y=4;

if (x==y)System.out.println(y);

else System.out.println((char)y);

}

}

4)关系运算的结果是true和false(而不是1或0、T或F!)

5)关系运算符优先级低于算术运算符,高于赋值运算符

逻辑运算符

运算符

示例

含义

&&

op1 && op2

逻辑与

||

op1 || op2

逻辑或

!

! op

逻辑非

1)逻辑运算的截断性。

class Test {

public static void main(String[] args){

int f=0;

if (f!=0 && 3/f>5)System.out.println("111");

else System.out.println("000");

}

}

思考:表达式f!=0 && 3/f>5是否会发生除0溢出错误?

2)优先级如下图示(从高到低)

!

算术运算

关系运算

&&

||

=

条件运算符(? :)

e1? e2:e3

意义:若e1为真,则取值e2;为假取值e3。

例:

int a=1;

int b=4;

int max=a>b?a:b;

说明:

1)e1的类型必须为boolean型

2)e2与e3有相同的数据类型

练习:输入三个整数,输出其中的最大数(MaxValue.java)。

Java运算符的优先级

运算符的优先级

()

++ -- !单目+单目-

* / %

+ -

< > <= >=

= =!=

&&

||

? :

=+= -= *=/= %=

变量的作用域

即变量何时可访问,何时不能。有如下几个要点:

²方法中声明的变量只在方法内访问

²花括号内的变量在花括号里,及其内含的花括号里可访问

class T1{

public static void main(String[] aa){

{

int x=1;

System.out.println(x);

x++;

}

System.out.println(x);

}

}

练习:输入一个半径(实数),输出圆面积。

import javax.swing.*;

public class CircleArea{

public static void main(String[] args){

String s=JOptionPane.showInputDialog("请输入半径:");

float r=Float.parseFloat(s);

System.out.println(a);

}

}

实验一

1.调试一个例程,理解Java程序的编辑、编译和执行方法。试观察源程序文件、字节码文件的扩展名。

2.读取一个实型数,输出该数的平方。

3.输入一个姓名,输出“Welcome, ”

4.分析和调试程序,初步理解日期信息的获取:

import java.util.*;

public class Day {

public static void main(String[] args){

Calendar c= Calendar.getInstance();

System.out.print("今天的日期是:");

int y=c.get(c.YEAR);

int m=c.get(c.MONTH)+1;

int d=c.get(c.DATE);

System.out.println(y+"-"+m+"-"+d);

}

}

5.仿照上题,输出当前时间。(HOUR,MINUTE,SECOND)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值