第二周Java课后作业报告
信2205-1班 20223688 孙怡然
一、p38枚举类型
1、代码示例
public class EnumTest {
public static void main(String[] args) {
Size s=Size.SMALL;
Size t=Size.LARGE;
//s和t引用同一个对象?
System.out.println(s==t); //false
//是原始数据类型吗?
System.out.println(s.getClass().isPrimitive());//false
//从字符串中转换
Size u=Size.valueOf("SMALL");//valueof是要把参数中给的值,转化为String类型
System.out.println(s==u); //true
//列出它的所有值
for(Size value:Size.values()){
System.out.println(value);
}
}
}
enum Size{SMALL,MEDIUM,LARGE};
2、运行结果
二、p45动脑动手:了解原码、补码和反码并编写程序进行各种位操作
1、代码示例
public class Demo{
public static void main(String[] args){
int a=3;
int b=4;
System.out.println(a & b); //输出0
System.out.println(a | b); //输出7
System.out.println(a ^ b); //输出7
System.out.println( ~ b ); //输出-5
System.out.println( b << 2 ); //表示b左移2位,输出13
System.out.println( b >> 2 ); //表示b右移2位,输出1
System.out.println( b >>> 2 ); //表示b无符号右移2位,输出1
}
}
2、运行结果
Java中的整数的存储和运算是采用补码形式进行的。
三、p47两数相加
1、代码示例
import javax.swing.JOptionPane; // import class JOptionPane
public class Addition {
public static void main( String args[] )
{
String firstNumber, // first string entered by user
secondNumber; // second string entered by user
int number1, // first number to add
number2, // second number to add
sum; // sum of number1 and number2
// 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" );
// convert numbers from type String to type int
number1 = Integer.parseInt( firstNumber );
number2 = Integer.parseInt( secondNumber );
// add the numbers
sum = number1 + number2;
// display the results
JOptionPane.showMessageDialog(
null, "The sum is " + sum, "Results",
JOptionPane.PLAIN_MESSAGE );
System.exit( 0 ); // terminate the program
}
}
2、运行结果
四、p52变量的作用域
动手动脑:Java变量遵循“同名变量屏蔽原则”,请编写代码在不同地方定义一些同名变量,看看输出的到底是哪个值
1、代码示例
public class VariableScopeExample {
private static int x = 10;
public static void main(String[] args) {
int x = 20;
System.out.println("内部x: " + x); // 输出内部变量x的值,应该是20
}
}
2、运行结果
五、p54在运行时读取用户输入(使用Scanner类)
1、代码示例
import java.util.*;
public class InputTest
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
// get first input
System.out.print("What is your name? ");
String name = in.nextLine();
// get second input
System.out.print("How old are you? ");
int age = in.nextInt();
int i;
String value="100";
i=Integer.parseInt(value);
i=200;
String s=String.valueOf(i);
// display output on console
System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));
}
}
2、运行结果
六、p56 Java中的类型转换
Java中每个数据类型所占的位数和表示数值的范围,能得出什么结论?
java中有8种基本数据类型:byte、int、short、long、boolean、char、float、double
对应的类为:Byte、Int、Short、Long、Boolean、Charecter、Float、Double
逻辑型:boolean
文本型:char
整数型:byte、short、int、long
浮点型:float、double
byte: 1字节 -128~127
short: 2字节 -2^15~2^15-1
int : 4字节 -2^31~2^31-1
long: 8字节 -2^63~2^63-1
boolean:1字节 true false(java中不能以0或非0代替)
float: 4字节 -3.403E38~3.403E38
double:8字节 -1.798E308~- 4.9E324
char: 2字节 ’\u0000‘~‘ ’\uffff ‘(16进制的,换算过来即0~65535)
(1字节等于8位)
结论: 数据类型所占位数越大,数值范围越大,低位数向高类型数据转化时,可能有精度损失,高位数向低位数类型数据转化时,会数据溢出。
七、p58 动手实验
1、代码示例
public class TestDouble {
public static void main(String args[]) {
System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
System.out.println("4.015 * 100 = " + (4.015 * 100));
System.out.println("123.3 / 100 = " + (123.3 / 100));
}
}
2、运行结果
使用double类型的数值进行计算,其结果是不精确的
八、p60 为什么double类型的数值进行运算得不到数学上精确的结果?
因为计算机进行的是二进制运算,我们输入的十进制数字会先转换成二进制,进行运算后再转换为十进制输出。我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位的,比如1/3),而Double类型的数值只有64bit,后面舍去的位数就一定会带来误差,无法得到“数学上精确”的结果。
九、p61 怎样处理精度损失
1、代码示例
import java.math.BigDecimal;
public class TestBigDecimal
{
public static void main(String[] args)
{
BigDecimal f1 = new BigDecimal("0.05");
BigDecimal f2 = BigDecimal.valueOf(0.01);
BigDecimal f3 = new BigDecimal(0.05);
System.out.println("下面使用String作为BigDecimal构造器参数的计算结果:");
System.out.println("0.05 + 0.01 = " + f1.add(f2));
System.out.println("0.05 - 0.01 = " + f1.subtract(f2));
System.out.println("0.05 * 0.01 = " + f1.multiply(f2));
System.out.println("0.05 / 0.01 = " + f1.divide(f2));
System.out.println("下面使用double作为BigDecimal构造器参数的计算结果:");
System.out.println("0.05 + 0.01 = " + f3.add(f2));
System.out.println("0.05 - 0.01 = " + f3.subtract(f2));
System.out.println("0.05 * 0.01 = " + f3.multiply(f2));
System.out.println("0.05 / 0.01 = " + f3.divide(f2));
}
}
2、运行示例
十、p64动手动脑
1、代码示例
import java.math.BigDecimal;
public class TestBigDecimal
{
public static void main(String[] args)
{
int x=100;
int y=200;
System.out.println("x+y="+x+y);
System.out.println(x+y+"=x+y");
}
}
2、运行结果
“+”符号在第一个语句当中是连接字符串,在第二个语句中是做运算符
标签:Java,String,System,0.05,第二周,课后,println,public,out From: https://www.cnblogs.com/Sunyiran/p/17698832.html