zoukankan      html  css  js  c++  java
  • Java基础--day03

    表达式求值以及操作符优先级

    Java表达式的求值和数学表达式求值一样

    • 由括号先算括号里面
    • 乘除取余先算
    • 再算加减
    • 同级计算从左到右

    题目:华氏度转换为摄氏度

    import java.util.Scanner;
    public class FahrenheitToCelsius {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            System.out.print("输入华氏度:");
            double f = input.nextDouble();
            double c = (5.0 / 9) * (f - 32);
            System.out.println("摄氏度为:" + c);
        }
    }
    

    输出:

    输入华氏度:100
    摄氏度为:37.77777777777778
    

    注意:5 / 9 的结果为0,应当为 5.0/9

    显示当前时间

    通过调用System.currentTimeMillis()返回当前时间

    Sysytem.currentTimeMillis返回自UNIX时间戳以来的毫秒数

    Snipaste_2020-02-08_15-05-42

    代码:

    public class ShowCurrentTime {
        public static void main(String[] args) {
            long totalMilliseconds = System.currentTimeMillis(); //总毫秒数
            long totalSeconds = totalMilliseconds / 1000;		 //总秒数
            long currentSecond = totalSeconds % 60;
            long totalMinutes = totalSeconds / 60;
            long currentMinute = totalMinutes % 60;
            long totalHours = totalMinutes / 60;
            long currentHour = totalHours % 24;
    
            System.out.println("当前GMT时间为" + currentHour + ":" +
                    currentMinute + ":" + currentSecond);
        }
    }
    

    核对下时间:GMT

    注意数据类型应该为:long

    增强赋值操作符

    操作符 名称
    += 加法赋值操作符
    -= 减法赋值操作符
    *= 乘法赋值操作符
    /= 除法赋值操作符
    %= 求余赋值操作符

    如:

    [x /= 4 + 5.5 * 1.5$$ 等同于 $$x = x / (4 + 5.5 * 1.5) ]

    自增和自减操作符

    操作符 名称 说明
    ++var 前置自增操作符 变量var的值加1且使用var增加后的新值
    var++ 后置自增操作符 变量var的值加1但使用var原来的值
    --var 前置自减操作符 变量var的值减1且使用var增加后的新值
    var-- 后置自减操作符 变量var的值减1但使用var原来的值

    数值类型转换

    通过显式转换,浮点数可以被转换为整数

    3 * 4.5 => 3.0 * 4.5
    

    总是可以将一个数值赋给支持更大数据范围类型的变量,如:可以将long型的值赋给float型的变量

    但是,若不进行类型转换,就不能将一个值赋给范围较小类型的变量。

    拓宽类型:将一个小范围类型的变量转换为大范围类型的变量

    缩窄类型:把大范围类型的变量转换为小范围类型的变量

    Java将自动拓展一个类型,但是,缩窄类型必须显式完成。

    显式类型转换:

    System.out.println((double)1 / 2);   // 结果为0.5
    System.out.println((int)1.7);		 // 结果为1
    

    注意:

    1. 类型转换不会改变被转换的变量
    double b = 4.5;
    int i = (int)b; // i = 4; b 仍然为 4.5
    
    1. Java中, (x1 op= x2)形式的增强赋值表达式,执行为 (x1 = (T)(x1 op x2)),这里T是x1的类型。如:
    int sum = 0;
    sum += 4.5;  //sum = 4
    // sum += 4.5 等价于 sum = (int)(sum + 4.5)
    
    1. 将一个int型变量赋值给short型或者byte型变量,必须进行显式转换。
    int i = 1;
    byte b = i;  // 编译错误
    byte c = (byte)i; // 正确
    

    然而,只要整型直接量是在目标范围允许内的,那么将整型直接量赋给short型或byte型变量时,就不需要显示的类型变换。

    Write by Gqq

  • 相关阅读:
    修改Macros的值
    【转】mysqldump与innobackupex知多少
    while read line 查找指定日期的文件夹
    [转]构建高性能MySQL体系
    [转]JDBC如何进行超时设置
    oracle 高水位线详解
    配置解析
    pt-query-digest 使用说明
    anemometer安装
    [转]找到MySQL发生swap的原因
  • 原文地址:https://www.cnblogs.com/zgqcn/p/12529454.html
Copyright © 2011-2022 走看看