zoukankan      html  css  js  c++  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};
    运行结果:
    false
    false
    true
    SMALL
    MEDIUM
    LARGE
    分析:ENUM类似一个类,与类的用法相差不多。
    用法:
    1.System.out.println(s==t)可以直接判断是否相等
    2.    for (EnumTest e : EnumTest.values()) {
                System.out.println(e.toString());
            }遍历枚举类型中的所有值
    3.Size u=Size.valueOf("SMALL")字符串转换,进行赋值
    动手动脑二:原码、补码、反码
    原码:是最简单的机器数表示法。用最高位表示符号位,‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值。
    反码:正数的反码还是等于原码。负数的反码就是他的原码除符号位外,按位取反。
    补码:正数的补码等于他的原码。负数的补码等于反码+1。
    通过操作可知java中的数是用补码表示的。
    动手动脑三:类型转换
    byte(字节型):1字节  128~127
    char(字符型):2字节  0~65535
    short(短整型):2字节  2^15~2^15-1
    int(整型):4字节  2^31~2^31-1
    long(长整型):8字节  2^63~2^63-1
    float(单精度浮点型):4字节  3.403E38~3.403E38
    double(双精度浮点型):8字节  1.798E308~- 4.9E324
    boolean:1字节   true false
    类型转换原则:从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换。
    动手实验四:
    程序代码:
    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));
        }
    }
    运行结果:
    0.05 + 0.01 = 0.060000000000000005
    1.0 - 0.42 = 0.5800000000000001
    4.015 * 100 = 401.49999999999994
    123.3 / 100 = 1.2329999999999999
    结论:使用double类型的数值进行计算,其结果是不精确的。Float和Double类型为我们提供快速运算,然而由于在转换为二进制的时候,有些数字不能完全转换,只能无限接近原本的值,从而导致运算结果不正确的问题。
    动手动脑五:
    程序代码:
     int X=100;
     int Y=200;
     System.out.println("X+Y="+X+Y);
     System.out.println(X+Y+"=X+Y");
    运行结果:
    X+Y=100200
    300=X+Y
    原因:由于运算的优先级,System.out.println("X+Y="+X+Y)先输出"X+Y="接下来进行"X+Y="+X也就是输出“X+Y=100”,最后在输出X+Y=100200。而System.out.println(X+Y+"=X+Y"),由于X+Y不是字符串,于是就先进行计算后再输出。
    课堂测试:
    程序代码:
    package ceshi;
    import java.util.Random;
    import java.util.*;
    public class CeShi {
     static Scanner in = new Scanner(System.in);
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      Random random = new Random();
      int z=1;
      for(int i=0;i<30;i++) {
       
       int ran1= random.nextInt(4);
       if(ran1==0) {
        int ran2 = random.nextInt(100);
        int ran3 = random.nextInt(100);
        System.out.println(z+" "+ran2+"+"+ran3+"=");
        z++;
       }
       if(ran1==1) {
        int ran4 = random.nextInt(100);
        int ran5 = random.nextInt(100);
        if(ran4>ran5)
         System.out.println(z+" "+ran4+"-"+ran5+"=");
        z++;
       }
       if(ran1==2) {
        int ran6 = random.nextInt(100);
        int ran7 = random.nextInt(100);
        System.out.println(z+" "+ran6+"*"+ran7+"=");
        z++;
       }
       if(ran1==3) {
        int ran8 = random.nextInt(100);
        int ran9 = random.nextInt(100);
        System.out.println(z+" "+ran8+"/"+ran9+"=");
        z++;
       }
      }
      
     }
    }
    运行结果:
    1 59-52=
    2 87*58=
    3 53-23=
    4 66/1=
    5 65/58=
    7 70+24=
    8 39/97=
    9 82-39=
    10 51*4=
    11 22/25=
    12 54/29=
    13 64*47=
    14 37/81=
    15 1+5=
    16 45+13=
    17 70*85=
    18 79+25=
    19 50*34=
    20 69-8=
    21 93-30=
    22 23/8=
    23 72-51=
    24 44+0=
    25 62*43=
    26 57*71=
    27 92+52=
    28 88/24=
    29 68*38=
    30 20+22=
     
  • 相关阅读:
    Vue 基础篇一
    ES6常用语法
    Django的认证系统
    Django中的Form表单
    AJAX
    Django中的中间件
    Django ORM操作__聚合,分组查询
    Django ORM操作
    Luogu1382 楼房 (线段树 扫描线)
    Luogu2251 质量检测 (ST表)
  • 原文地址:https://www.cnblogs.com/Lhxxx/p/11552985.html
Copyright © 2011-2022 走看看