Java语法基础练习2

---恢复内容开始---

1.仔细阅读示例:EnumTest.java分析结果

代码:

运行结果:

分析:枚举类型就是一个类,枚举中的常量就是枚举类型中的实例,可把字符串转化为枚举;而且他本身是一个类,所以不是原始数据类型,同时也不能被继承。同时由于s与t引用的不是同一个数据对象,所以不相等。也不是原始数据类型。

2.   原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。故他的取值范围是[-127, 127]。原码是人脑最容易理解和计算的表示方法。

反码:正数的反码是他本身,负数的反码是在其原码的基础上,符号位不变,其余各位取反。例如[+1]=[00000001](原码)=[00000001](反码);[-1]=[10000001](原码)=[11111110](反码)。

补码:正数的补码是其本身;负数的补码是在其原码的基础上,符号位不变,其余取反,最后加1。

Java中的数是用补码表示的。

3.同名变量覆盖

代码:

结果:

5.运行程序

代码:

结果:

分析:使用double类型的数值进行计算时,其结果不精确。

N进制可以理解为:数值×基数的幂,例如我们熟悉的十进制数123.4=1×10²+2×10+3×(10的0次幂)+4×(10的-1次幂);其它进制的也是同理,例如二进制数11.01=1×2+1×(2的0次幂)+0+1×(2的-2次幂)=十进制的3.25。double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。举个例子来说,比如要用4bit来表示小数3.26,从高到低位依次对应2的1,0,-1,-2次幂,根据最上面的分析,应当在二进制数11.01(对应十进制的3.25)和11.10(对应十进制的3.5)之间选择。简单来说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。解决方法:现在已经可以解决这个问题了,原则是使用BigDecimal并且一定要用String来构造。 但是想像一下吧,如果要做一个加法运算,需要先将两个浮点数转为String,然后构造成BigDecimal,在其中一个上调用add方法,传入另一个作为参数,然后把运算的结果(BigDecimal)再转换为浮点数。

6.运行程序

代码:

结果:

分析:+x+y表示依次输出x,y的值;x+y才是运算。

7.两个数的运算

代码:

package main;

//An addition program

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

public class YunSuan {

public static void main( String args[] )  {

String firstNumber,   // first string entered by user

secondNumber;// second string entered by user

String  fuhao;       //fuhao

int number1,          // first number to add

number2,          // second number to add

sum; // sum of number1 and number2

int sum1,sum2,sum3;     // read in first number from user as a string

firstNumber =

JOptionPane.showInputDialog( "Enter first integer" );

// read in second number from user as a string

secondNumber =

JOptionPane.showInputDialog( "Enter second integer" );

fuhao=

JOptionPane.showInputDialog( "Enter the fuhao" );

// convert numbers from type String to type int

number1 = Integer.parseInt( firstNumber );

number2 = Integer.parseInt( secondNumber );

if(fuhao.equals("+"))

{         // add the numbers

sum = number1 + number2;

JOptionPane.showMessageDialog(

null, "The sum is " + sum, "Results",

JOptionPane.PLAIN_MESSAGE );        }

else if(fuhao.equals("-"))

{

sum1=number1-number2;

JOptionPane.showMessageDialog(

null, "The sum1 is " + sum1, "Results",

JOptionPane.PLAIN_MESSAGE );

}

else if(fuhao.equals("*"))

{

sum2=number1*number2;

JOptionPane.showMessageDialog(

null, "The sum2 is " + sum2, "Results",

JOptionPane.PLAIN_MESSAGE );

}

else if(fuhao.equals("/"))

{

if(number2!=0)

{sum3=number1/number2;

JOptionPane.showMessageDialog(

null, "The sum3 is " + sum3, "Results",

JOptionPane.PLAIN_MESSAGE );}

else

JOptionPane.showMessageDialog(

null, "The sum3 is error", "Results",

JOptionPane.PLAIN_MESSAGE );

}

System.exit( 0 );   // terminate the program

} }

结果:特殊情况除法中,除数为0

---恢复内容结束---

时间: 2024-10-21 10:47:51

Java语法基础练习2的相关文章

Java语法基础

Java语法基础 1.  关键字 某些单词对编译器有着特殊的含义,并且不能作为标示符使用,全部是小写字母 Java语言关键字 abstract boolean break byte case catch char class try do default continue double else extends assert final finally float for If implement import instanceof int interface long native new g

java语法基础一

Java语法基础一 Java代码基本格式 Java中所有程序代码都必须存在于一个类中,用class关键字定义类,在class之前可以有一些修饰符.格式如下: 修饰符 class 类名 { 程序代码 } 注:1.Java是严格区分大小写的. 2.Java程序中一句连续的字符串不能分开在两行中写. Java程序的注释 Java里的注释有三种类型: 1.单行注释 在注释内容前面加“//”,格式为: 代码; //注释内容 2.多行注释 以斜杠加星号开头,以星号加斜杠结尾. 3.文档注释 以斜杠加两个星号

JAVA语法基础(课堂ppt问题总结)

一:运行源代码EnumTest.java,分析运行结果. 代码如下: public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t); // //是原始数据类型吗? System.out.println(s.getClass().isPrimitive()); //从字符串中转换

JAVA语法基础课堂例子验证

一 枚举类型 源代码: public class EnumTest {  public static void main(String[] args) {   Size s=Size.SMALL;   Size t=Size.LARGE;   //s和t引用同一个对象?   System.out.println(s==t);  //   //是原始数据类型吗?    System.out.println(s.getClass().isPrimitive());    //从字符串中转换   Si

JAVA语法基础之标识符和关键字

一.标识符 JAVA中的变量名.方法名.类名和对象名都是标识符,程序在编写程序的过程中要标识和引用都需要标识符來唯一确定.在Java中标识符的命名规则如下: 可由任意顺序的大小写字母.数字.下划线和美元符号组成. 不能以数字开头. 不能是Java中的保留关键字. 没有长度限制,但是大小写敏感,如Hello和hello是不同的标识符. 二.关键字 和其他语言一样,Java中也有许多保留关键字(即在Java中有特殊意义),如public.break等,这些保留关键字不能当作标识符使用.我们不需要死记

java语法基础(总结)

1,关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2,标示符:其实就是在程序中自定义的名词.比如类名,变量名,函数名.包含 0-9.a-z.$._ : 注意: 1),数字不可以开头. 2),不可以使用关键字. 3,常量:是在程序中的不会变化的数据. 4,变量:其实就是内存中的一个存储空间,用于存储常量数据. 作用:方便于运算.因为有些数据不确定.所以确定该数据的名词和存储空间. 特点:变量空间可以重复使用. 什么时候定义变量?只

黑马程序员——Java语法基础

一.关键字 1.定义和特点 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有的字母都为小写. 2.分类 (1)用于定义数据类型的关键字:byte.short.int.long.float.double.char.boolean.class.interface.void (2)用于定义数据类型值的关键字:true.false.null (3)用于定义流程控制的关键字:if.else.switch.case.default.for.while.do.continue.break.ret

Java语法基础常见疑惑解答

1. 类是java的最小单位,java的程序必须在类中才能运行 2. java函数加不加static有何不同 java中声明为static的方法称为静态方法或类方法.静态方法可以直接调用静态方法,访问静态变量,但是不能直接访问实例变量和实例方法.静态方法中不能使用this关键字,因为静态方法不属于任何一个实例.静态方法不能被子类的静态方法覆盖.static 表示是静态的,用static修饰的方法在本类可以直接写方法名调用!在其他类里可以用类名.方法名调用!而不用实例化.如果不加static,则一

Java语法基础(1)

一.Java主类结构 Java语言是面向对象的程序设计语言,Java程序的基本组成单元就是类,类体中又可包括属性与方法两部分.每一个Java本地应用程序都必须包含一个main()方法,main()方法为Java应用程序的入口,包含main()方法的类称之为主类.一个完整的主类结构通常由定义包语句.定义类语句.定义主方法语句.定义变量语句和导入API类库5部分组成,下面进行详细介绍. 1.定义包 开发应用程序时,通常将Java类放在指定的包中,每个包内通常放置同类的Java类,这样可以使应用程序的