第二周课后学习作业&&动手动脑课后作业

第一个是阅读并理解这段代码:

package first1;

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

//列出它的所有值

for(Size value:Size.values()){

System.out.println(value);

}}}

 enum Size{SMALL,MEDIUM,LARGE};

首先是对于getClass(),isPrimitive()的解释:

Object类中包含一个方法名叫getClass,利用这个方法就可以获得一个实例的类型类。类型类指的是代表一个类型的类,因为一切皆是对象,类型也不例外,在Java使用类型类来表示一个类型。所有的类型类都是Class类的实例

isPrimitive():boolean:判断该类型是否是基本类型,即是否是int,boolean,double等等。

所以第一个s和t不是同一个对象,输出false

第二个地方因为getClass()输出不是基本类,所以处false

最后一个值相同所以出true

最后是遍历输出了所有的值

第二个是测试第二段代码

package first1;

import java.util.Scanner;

import java.util.Random;

public class second1 {

static Scanner sc=new Scanner(System.in);

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");

}}

出现这种情况是因为第一个的加号是并列输出

而第二个是相加后输出

最后是课堂测验

需要写一个能自动生成30道小学四则运算题目的“软件”,要求:

1.题目避免重复

2.可定制(数量/打印方式)

这道题主要是利用循环输出题目,然后利用二维数组实现查重并输出,定制数量可以用建立一个变量然后打印方式可以采用除余的方法来解决。

以下是源代码:

package first1;

import java.util.Scanner;

import java.util.Random;

public class fourth {

static Scanner sc=new Scanner(System.in);

public static void main(String args[]){

Random rand =new Random();

int k;

int sum=0;

int s1;

int s2;

int a[][]=new int[100000][3];

System.out.println("请输入题目数量");

int sl;

sl=sc.nextInt();

System.out.println("请输入一行输出的数");

int sl1;

sl1=sc.nextInt();

int temp;

boolean flag=false;

  while(sum<=sl) {

s1=rand.nextInt(90)+10;

    s2=rand.nextInt(90)+10;  

    k=rand.nextInt(4)+1;

    if(k==2)

    {if((s1-s2)<0)

    {temp=s1;s1=s2;s2=temp;}

    }

    if(k==3)

    {

    while(s2==0)

    {s2=rand.nextInt(90)+10;}

    }

    if(k==3)

    {

    while((s1%s2)!=0)

    {

    s1=rand.nextInt(90)+10;

    s2=rand.nextInt(90)+10;

    }

    } 

    a[sum][0]=s1;

    a[sum][1]=s2;

    a[sum][2]=k;

    for(int i=0;i<sum;i++)

    {

    if(a[sum][0]!=a[i][0]&&a[sum][1]!=a[i][1]&&a[sum][2]!=a[i][2])

    {flag=true;}

   

    }

    if(flag==true)

    {

    switch(a[sum][2])

    {

    case 1:

    System.out.print((sum)+"."+a[sum][0]+"*"+a[sum][1]+"="+" ");

        break;

    case 2:

    System.out.print((sum)+"."+a[sum][0]+"-"+a[sum][1]+"="+" ");

        break;

    case 3:

    System.out.print((sum)+"."+a[sum][0]+"/"+a[sum][1]+"="+" ");

        break;

    case 4:

    System.out.print((sum)+"."+a[sum][0]+"+"+a[sum][1]+"="+" ");

        break;

   

   

    }

            if((sum)%sl1==0)

        {   

        System.out.println(); 

   

        }

   

           

   

   

    }

   

  sum=sum+1;

    

   

   

  }

 

 

 

 

  }

}

 

猜你喜欢

转载自www.cnblogs.com/ljpljm/p/11553247.html