JAVA学习第二周课后作业

时间:2021-06-29 14:34:14
Java 的基本运行单位是类。
类由数据成员和函数成员组成。
变量之间可以相互转换。
String是一个类。
static是静态、全局的意思。
经过测试,Java的枚举类型定义的Size与String一样都不是Java的原有数据类型
适当的修改测试的原程序代码:
package shangke.dierzhou;
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());
  //从字符串中转换
  Size u=Size.valueOf("SMALL");
  System.out.println(s==u);  //true
  //列出它的所有值
  String name="name";
  System.out.println(name.getClass().isPrimitive());
  int sss=1;
  System.out.println();
  System.out.println();
  int i=0;
  System.out.println();
  for(Size value:Size.values()){
   System.out.println(value);
   i++;
  }
  System.out.println(i);
 }
}
 enum Size{SMALL,MEDIUM,LARGE};
测试结果是:
false
false
true
false
SMALL
MEDIUM
LARGE
这个测试结果证明了String和枚举定义的类型一样都不是原有数据类型。
基本的枚举类型使用方法一样掌握。
TestDouble测试代码:
package shangke.dierzhou;
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));
    }
}
这个测试让我很惊醒,正如老师所讲的在与数字打交道时要谨慎谨慎再谨慎。
double类型在精度问题上是因为在机器语言中该数据超出了double类型的位数,采取高位截断的方式导致了结果的精度差。
package text;
public class text1 {
 
 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");  
 } 
}
这个代码的结果:
X+Y=100200
300X+Y
出现这种结果是因为第一个输出双引号在前所以就直接相当于字符串连接后面的“+”号相当于字符号连接符并没有进行加法
而第二个是先进行加法在遇到双引号之后才将第二个“+”当做字符串连接符号。
当堂测试四则运算源代码:
package shangke.dierzhou;
import java.util.Random;
import java.util.Scanner;
public class sizeyunsuan {
 
 public static void main(String[] args) {
  int a1=0,a2=0;
  int flag=0;
  int flag1=1;
  int flag2=1;
  int flag3=1;
  int flag4=1;
  int k1=0,k2=0,k3=0,k4=0;
  int s1[][]=new int[10000][2];
  int s2[][]=new int[10000][2];
  int s3[][]=new int[10000][2];
  int s4[][]=new int[10000][2];
  int n,m;
  Scanner in=new Scanner(System.in);
  System.out.println("请输入需要多少个题");
  n=in.nextInt();
  System.out.println("请输入一行几个题");
  m=in.nextInt();
  for(int i=1;i<=n;)
  {
   Random b=new Random();
   Random c=new Random();
   a1=b.nextInt(100);
   a2=c.nextInt(100);
   if(a1%4==0)
   {
    flag1=1;
    for(int j=0;j<=k1;j++)
    {
     if(s1[j][0]==a1&&s1[j][1]==a2)flag1=0;
    }
    if(flag1==1)
    {
     flag=1;
     //System.out.println("这是第"+i+"题");
     System.out.print(a1+"+"+a2+"=");
     s1[k1][0]=a1;
     s1[k1][1]=a2;
     k1++;
    }
   
   }
   if(a1%4==1)
   {
    flag2=1;
    for(int j=0;j<=k2;j++)
    {
     if(s2[j][0]==a1&&s2[j][1]==a2)flag2=0;
    }
    if(flag2==1)
    {
     flag=1;
     if(a1>a2)
     {
      //System.out.println("这是第"+i+"题");
      System.out.print(a1+"-"+a2+"=");
      s2[k2][0]=a1;
      s2[k2][1]=a2;
      k2++;
     }
     else
     {
      //System.out.println("这是第"+i+"题");
      System.out.print(a2+"-"+a1+"=");
      s2[k2][0]=a1;
      s2[k2][1]=a2;
      k2++;
     }
    }
    
   }
   if(a1%4==2&&a1*a2<=100)
   {
    flag3=1;
    for(int j=0;j<=k3;j++)
    {
     if(s3[j][0]==a1&&s3[j][1]==a2)flag3=0;
    }
    if(flag3==1)
    {
     flag=1;
     //System.out.println("这是第"+i+"题");
     System.out.print(a1+"*"+a2+"=");
     s3[k3][0]=a1;
     s3[k3][1]=a2;
     k3++;
    }
    
   }
   if(a1%4==3&&a1!=0&&a2!=0)
   {
    flag4=1;
    for(int j=0;j<=k4;j++)
    {
     if(s4[j][0]==a1&&s4[j][1]==a2)flag4=0;
    }
    if(flag4==1)
    {
     if(a1%a2==0)
     {
      flag=1;
      //System.out.println("这是第"+i+"题");
      System.out.print(a1+"/"+a2+"=");
      s4[k4][0]=a1;
      s4[k4][1]=a2;
      k4++;
     }
     if(a2%a1==0)
     {
      flag=1;
      //System.out.println("这是第"+i+"题");
      System.out.print(a2+"/"+a1+"=");
      s4[k4][0]=a2;
      s4[k4][1]=a1;
      k4++;
     }
    }
   }
   if(flag==1)
   {
    i++;
    flag=0;
    System.out.print("  ");
    if((i-1)%m==0)
    {
     System.out.println();
    }
   }
   
  }
  
 }
}
这个四则运算可以根据用户要求出题的个数和每行多少道题