章节
问答
课签
笔记
评论
占位
占位

Java中的自动类型转换

在 Java 程序中,不同的基本数据类型的数据之间经常需要进行相互转换。例如:

代码中 int 变量 score1 可以直接为 double 型变量 score2 完成赋值操作,运行结果为: 82.0 

这种转换称为自动类型转换

当然自动类型转换是需要满足特定的条件的:

1.  目标类型能与源类型兼容,如 double 型兼容 int 型,但是 char 型不能兼容 int 型

2.  目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节,因此 double 类型的变量里直接可以存放 int 类型的数据,但反过来就不可以了

 

 

任务

小伙伴们,让我们再来感受下自动类型转换吧

在编辑器中,代码功能为:定义三个变量,分别用来保存:考试平均分、增长值、调整后的平均分

期望运行结果为:

现在第 5 行存在错误,你能找到并修改正确么?

?不会了怎么办

1. 注意自动类型转换的条件哦,int 类型可自动转换为 double 类型,但 double 类型不能自动转换为 int 类型

2. 第 5 行参考:double avg2 = avg1 + rise ;

||
1
public class
    HelloWorld{
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

已采纳回答 / weixin_慕丝1154391
这不是result属不属于char的问题,这行代码是错误的,写出来只是告诉你不能这么写代码,提示说的是int不能自动转换为char,你可以看一下这张图片左侧,就是提示这是第12行代码的这个12旁边是不是有一个小X号,红色的,这就是提示这行代码是错误的,运行不了的。个人理解,仅供参考。

最新回答 / weixin_慕仙0249325
public class HelloWorld{    public static void main(String[] args) { double avg1=78.5; int rise=5;//           自动类型转换是需要满足特定的条件的 ://             目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节 double avg2=avg1+rise; System.out.println("考试平均分:"+avg1); Sys...

最新回答 / 五阎
class 就是要和你的名称(HelloWorld)一样,否则就要报错(开头要大写)

最新回答 / 爱吹牛的神话
这个class后面的必须和你上面的 XX.class对应,也就是 class后面要跟着XX

最赞回答 / 慕后端9331222
不一定。需要明白,变量命名目的是用于区分当前数值代表的意义,只要能让自己和其他人准确理解就好。avg是英文单词“average平均数”的缩写,你也可以用“pingjunshu”代表,只是习惯问题。当然,最好随大流,毕竟大部人都习惯的才是比较普及的。就像普通话 一样。

最赞回答 / 祸用
你的类(文件)名叫HelloWorld    你的代码也需要是HelloWorld文件名开头,不然开头就错了更别说代码内容了public class “HelloWorld” 双引号的这个词,必须和你起的名字一致

已采纳回答 / 小仆仆
这是显示你要输出的东西,两个都没有影响,输出错误的原因是慕课网的题目要求没达到,可能是慕课网是中文符号。

已采纳回答 / 失落尘埃Asx_mai
1.  在设计语言时,double  就被设置对应存储空间里的8个字节;2.   int  被分配了4个字节的存储空间,当把小的存储空间放到大的存储空间时,即使  int  的存储空间被占满,放到  double  里也不会出现数据溢出的情况,设计语言的程序就不会报错;   3.当  double  存储的数据占的存储空间大于4个字节时,放到  int  中就会有一部分数据因没有空间保存而亏损,所以设计语言的程序设置了  double  存储的数据大不大于4个字节转换  int  都需要强制转换。

已采纳回答 / 慕仰2746055
结尾少两个大括号

最新回答 / weixin_慕神3028693
因为avg1是double类型的,如果avg1是float类型的就可以按照你那样转换,但是不用加()和f

最赞回答 / QuKin
你说的是强制类型转换吧?double是浮点型字节是8,而int是整数字节是4,你可以想成x.x和x的区别(把x当成字节为4),装换过来之后小数没了就变成整数

已采纳回答 / 慕斯卡5538745
因为int是整型用于储存整数,如年龄、个数  字节为4char是字符型用于储存单个字符,如性别‘男’、‘女’字节为2

最赞回答 / dango07
①目标类型必须与源类型兼容(char不兼容int)②目标类型必须大于或等于源类型③数据类型排序(小-大):char,byte,short ===> int ===>long ===>float ===> double④int为默认整数数据类型;        double为默认浮点数数据类型:    short s1 = 23;    long l1 = short+23(此数据为int型);    输出结果为int型⑤char,byte,short之间进行转换时,结果都为int型

已采纳回答 / 慕圣3045325
我从别的学习网站上看到是这么说的:String args[] 与 String[] args 都可以执行,但推荐使用 String[] args,这样可以避免歧义和误读。
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言