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());
        //从字符串中转换
        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};

 
View Code

运算结果为

 

 表明枚举类型的每个具体值指向一个具体对象。

并且可以用"=="或equals()来比较值。

 

原码:​ 原码就是早期用来表示数字的一种方式: 一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码。

反码:正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反。

补码:正数的补码与原码相同,负数的补码为 其原码除符号位外所有位取反,然后最低位加1。

例如:

+7的原码:00000111 

-7的原码:10000111

+7的反码:00000111 

-7的反码:11111000

+7的补码:00000111 

-7的补码:11111001

java中采用补码存储数据。

 

public class Test {
    static  int i=10; 
    public static void a() {
        System.out.println(i);
        
    }
    public static void b() {
        int i=1000;
        System.out.println(i);
        
    }
    {
        int i=1001;
        System.out.println(i);

        
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
       int i=100;
       a();
       b();
       System.out.println(i);
       
    }

}
View Code

变量作用域中访问遵循就近原则。出了大括号就不认识。

 

 

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));
    }
}
View Code

这表明浮点型在计算机中无法进行精确计算。原因是计算机内部无法用二进制的小数来精确的表达。

 

 

public class TestAdd{
    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");
    }
}
View Code

 

 出现这种结果的原因是第一行输出的第二个加号左边是字符串,因此会做字符串连接自然+Y继续连接。

第二行是因为第一个+两边是操作数。因此会先进行加运算。

 

课后作业

实现30组运算法则题目,避免重复。

public class JiaJianChengChu {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
           int a=0;
           int b=0;
           int i=0;
           int k=0;
           int flag=0;
           int []m =new int [31];
           int []n =new int [31];
          for(i=0;k<30;i++) {
              a=(int)(Math.random()*100+1);
              b=(int)(Math.random()*100+1);
              i=(int)(Math.random()*4+1);
             // k=(int)(Math.random()*4+1);
              switch(i) {
              
              case 1: {
                      if(k==0) {
                          System.out.println(a+"+"+b+"="+(a+b));
                             k++;
                             m[k]=a;
                             n[k]=b;
                             break;
                      }
                      else {  for(int l=0;l<k;l++)
                      {
                          if(m[l]==a&&n[l]==b)
                          {   flag=1;
                              break;
                          }
                          
                      }
                      }
                      if(flag==0) {
                          
                          System.out.println(a+"+"+b+"="+(a+b));
                             k++;
                             m[k]=a;
                             n[k]=b;
                             break;
                      }
                      break;
                    }
              case 2: 
                  {
                      if(k==0) {
                  
                  System.out.println(a+"-"+b+"="+(a-b));
                     k++;
                     m[k]=a;
                  n[k]=b;

                     break;
              }
              else {  for(int l=0;l<k;l++)
              {
                  if(m[l]==a&&n[l]==b)
                  {   flag=1;
                      break;
                  }
                  
              }
              }
              if(flag==0) {
                  
                  System.out.println(a+"-"+b+"="+(a-b));
                     k++;
                     m[k]=a;
                     n[k]=b;
                     break;
               }
                break;   
                  }
            case 3: 
                    {
                        if(k==0) {
                         if(a*b>100) {
                             
                             break;                 
                         }
                         else {
                             System.out.println(a+"*"+b+"="+(a*b));
                             k++;  
                             m[k]=a;
                                n[k]=b;
                            break;
                         }
                        
                    }
                    else {
                        
                         for(int l=0;l<k;l++)
                         {
                             if(m[l]==a&&n[l]==b)
                             {   flag=1;
                                 break;
                             }
                             
                         }
                        if(flag==0) {
                         if(a*b>100) {
                             break;  
                             
                         }
                         else {
                             
                             System.out.println(a+"*"+b+"="+(a*b));
                                k++;
                                m[k]=a;
                                n[k]=b;
                                break;
                             
                         }
                         
                    }
                    }
                  
                                       break;
             
              
              }
              case 4: 
                  
              {
                  if(k==0) {
                  System.out.println(a+"/"+b+"="+(a/b));
                     k++;
                     m[k]=a;
                  n[k]=b;

                     break;
              }
              else {  for(int l=0;l<k;l++)
              {
                  if(m[l]==a&&n[l]==b)
                  {   flag=1;
                      break;
                  }
                  
              }
              }
              if(flag==0) {
                  
                  System.out.println(a+"/"+b+"="+(a/b));
                     k++;
                     m[k]=a;
                     n[k]=b;
                     break;
               }
                break;                            
              
              }
              }
          }
    }

}
View Code

 

posted @ 2020-10-01 08:43  好吗,好  阅读(90)  评论(0)    收藏  举报