java


动手动脑

(一)仔细阅读示例 EnumTest.java,运行它,分析运行结果?

运行结果

false

false

true

SMALL

MEDIUM

LARGE

分析运行结果:首先判断是否引用同一个对象,然后判断是不是是原始数据类型,接着从字符串中转换,最后
列出它的所有值。

(二)你能得到什么结论?你掌握了枚举类型的基本用法了吗?

枚举类型是引用类型, 枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。
相同的值则引用同一个对象。枚举类型的常量以字符串的形式顺序储存,构造函数和覆写
toString()的方法可给枚举类型赋值 。也可以使用“==”和equals()方法直接比对枚举变量的值
,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。


(三)为什么double类型的数值进行运算得不到“数学上精确”的结果?
float 和double类型主要是为科学计算和工程计算而设计的,他们执行二进制浮点运算,
然而无论是单精度还是双精度在计算机中的储存都分为三个部分:符号位(0代表正,1代表负)、
指数位(用于储存科学计数法中的指数数据,并且采用移位存储)、尾数部分。数据以二进制存储在计算机时,会出现无线循环系列,比如
8.25的科学计数法表示为:十进制8.25*10^0,二进制1.0001*2^3,这些数以二进制形式存储在计算机里时,
会出现00110011001100110011……的无限循环系列,
在数据转化中会出现错误。十进制不能准确的表示1/3,同样二进制不能精确的表示1/10。


(四)以下代码的输出结果是什么?

int X=100;

int Y=200;

System.out.println("X+Y="+X+Y);

System.out.println(X+Y+"=X+Y");

答:输出结果是 X+Y=100200 300=X+Y

那么为什么会有这样的输出结果呢?

因为输出语句1里的“+”为连接字面量,计算结果是将X和Y将两数据连接;而输出语句2里第一个“+”为加法运算符,对X和Y求和,第二个“+”为
连接运算符,所以就出现了以上结果。


(五)编写一个程序,用户输入两个数,求出其加减乘除,并用消息框显示计算结果

源代码

import java.util.Scanner;

import javax.swing.JOptionPane;// import class JOptionPane

public class Operation {

public static void main( String args[] ){

Scanner input=new Scanner(System.in);

System.out.println("请输入两个整数:");

System.out.println("请输入第一个整数:");

System.out.println("请输入第二个整数:");

double n,m;

n=input.nextDouble(); //输入第一个数

m=input.nextDouble(); //输入第二个数

double sum,difference,product,quotient;

sum=n+m;

difference=n-m;

product=n*m;

quotient=n/m;

//输出对话框显示结果

JOptionPane.showMessageDialog(

null, "The sum is " + sum +"\n"+

"The difference is "+ difference +"\n"+

"The product is "+product+"\n"+

"The quotient is "+quotient,"Results",

JOptionPane.PLAIN_MESSAGE );

System.exit( 0 );

 

}

}

原文地址:https://www.cnblogs.com/Jiao827/p/4859741.html