java1-类型转换

描述

设计一个方法,将一个小于2147483647的double类型变量以截断取整方式转化为int类型

输入描述:

随机double类型变量

输出描述:

转化后的int类型变量

示例1

输入:

12.34

复制输出:

12

复制

示例2

输入:

1.88

输出:

1

 A:考察知识点:

Java基础语法:变量、基本数据类型、强制转换。

  • 变量:在JVM虚拟机中堆内存存放。

堆(heap),栈(stack) 属于内存空间的一段区域

  •  基本数据类型:整数型(byte 1,short 2,int 4,long 8);浮点型(float 4,double 8);字符型(char 2);布尔型(Boolean 1)

  • 强制转换:

说到强制转换,必然有赋值符号的参与,根据参与强制转换的数据不同分为如下2类:

  1. 常量:首先判断是否在赋值变量的范围内,不在,则强转()。
  2. 变量:直接判断变量的数据类型是否小于赋值变量范围,不小于,则强转().
  3. 表达式:数据和运算符的结合,(算术,赋值结合的结果是数值型;条件,逻辑的结果是布尔型),一般运算结果会以运算数据最大精度为依据。

赋值运算符:将右边的(常量/变量/表达式)赋给左边的变量。


   

简单需求--再优化效率--可读性--结构--设计模式

题解:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
       //法一:直接做运算--需求简化

       //步骤:
        //1.Scanner类对象,调用nextDouble方法,从后台输入double型数据--
        //2.将后台输入的值用 double d接收--
        //将b强转成int,用int a接收--
        //输出打印a
         Scanner in = new Scanner(System.in);
         double d = in.nextDouble();
         int a = (int)d;
         System.out.println(a);


        //法二:在main外建立方法,调用方法。--优化

        //步骤:
        //1.Scanner对象,调用nextDouble方法,从后台输入double型数据
        //将后台输入的值用 double d接收
        //建立方法,用于解决强转boolean成int的问题
        //调用方法,输出方法结果
        Scanner in = new Scanner(System.in);
        double d = in.nextDouble();
        System.out.println(typetransfer(d));
    }
        public static int typetransfer(double d){
            int a=(int)d;
            return a;
        
            
           
    }
}


Q:反思,这两种方法的优缺点各在哪里?

法一:完全遵循我们的算法思路,体现数学和编程的紧密结合。

法二:体现了面向对象编程的封装思想,将需求大的算法封装起来,直接调用方法,我们不需要自己再写。

R:反省:

需求解析非常重要,我们的代码就是需求分析的代码实现。某些变量生存域,某些方法是否有返回值,都是根据我们的需求来变化的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值