关于VB赋值语句强制转换等

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于VB赋值语句强制转换等相关的知识,希望对你有一定的参考价值。

1.VB赋值语句不是可以强制转换右边表达式为左边变量类型吗,
那么对于像Dim x as integer
x=val(inputbox(prompt,66,title))可以不用Val()转换?
2.有时候有些变量并没定义就使用了,什么时候变量必须定义,什么时候不用啊,不是说变量要先定义再使用吗?

我来告诉你吧,
1,。 如果去掉var() 你的代码会在inputbox(prompt,66,title) 获得非数值型数据,比如一个字母的时候报错。因为x是integer型的变量,你赋值一个string给它肯定会报错。用了var()函数,当碰到这种情况会自动把字母默认转换为0,当然你不用val 函数的话,自己写错误处理也可以,就是麻烦点,要多写几行代码;
2. 在VB中变量可以不定义变量,甚至可以不声明变量就使用。但是不提倡这样做。会导致程序出现bug的时候你很难找得到出错的地方。追问

赋值语句不是可以强制转换右边表达式为左边变量类型吗

追答

可以强制呀,但是是只可以转换的情况下,比如浮点型的转换成整数型的可以,毕竟大家都是数字嘛。而且浮点型包含了整形。数字转换成字符串型也可以,毕竟字符也包含了数字嘛,但是你要吧一个字符 A 强制转换成数值,你让VB情何以堪呢。再强制转换不合理的情况下,程序就只能报错了。

参考技术A 1、这个叫做隐式转换,在大部分语言中都有,隐式转换是有很多限制,并不是想怎么转就怎么转,就你发的例子来看,既然你前面已经声明了x是一个整型,那么后面最好是要用val将inputbox的字符串明确转成数值,去掉val有什么异常偶不清楚,你可以试试看。
2、vb是弱类型的语言,变量可以无需定义直接使用,这并不是一个什么好习惯,所以建议在每个窗体最上面一行加上option explicit 它会强制所有变量必须声明。
参考技术B 1.并不是所有都可以直接用函数转换的,你那个很有可能转换成0
2.VB在 “通用 声明”中没加“Option Explicit”一句时,所有变量都可以未经定义直接使用,如果直接使用一个变量,是隐式声明,相当于加了一句 Dim 变量名 As Variant
Variant 是一种特殊的数据类型,除了定长 String 数据及用户定义类型外,可以包含任何种类的数据
但是,正如LS几位所说,不定义变量不是个好习惯,单单从内存占用来说,就相当大
不过,数组是必须经过定义的,
参考技术C 不好意思哈,我只会第二题:vb是弱类型的语言,变量可以无需定义直接使用,这并不是一个什么好习惯,所以建议在每个窗体最上面一行加上option explicit 它会强制所有变量必须声明。

Java中的强制类型转换是如何转换的?

参考技术A

java中数据类型的强制转换是通过强制转换语句完成的,强制转换语句的格式为“目标数据类型 变量=(目标数据类型)数据;”。下面给出例子:

1、定义两个字节数据类型a、b、c,分别赋予1和2和a+b的值,进行加法运算的式子a+b=3,得出的结果“3”将会被编译环境判定为整形数据,把这个整形数据赋值给c,系统将会报错,这样就需要用到格式为“目标数据类型 变量=(目标数据类型)数据;”的强制转换语句。

2、根据强制转换语句的格式,易得“bytec=(byte)(a+b);”;

3、这样就把整形数据的“3”赋值给字节数据类型的c了,其中完成数据的强制类型转换。

扩展资料:

基本类型转换原则:

1、类型转换主要在在 赋值、方法调用、算术运算 三种情况下发生。

a、赋值和方法调用转换规则:从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换:

(1)布尔型和其它基本数据类型之间不能相互转换; 

(2)byte型可以转换为short、int、、long、float和double; 

(3)short可转换为int、long、float和double; 

(4)char可转换为int、long、float和double; 

(5)int可转换为long、float和double; 

(6)long可转换为float和double; 

(7)float可转换为double; 

b、算术运算中的类型转换:

1、基本就是先转换为高位数据类型,再参加运算,结果也是最高位的数据类型;

2、byteshortchar运算会转换为Int;

(1)如操作数之一为double,则另一个操作数先被转化为double,再参与算术运算。 

(2)如两操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算。 

(3)如两操作数均不为double或float,当操作数之一为long,、则另一操作数先被转换为long,再参与算术运算。 

(4)如两操作数均不为double、float或long,则两操作数先被转换为int,再参与运算。

特殊: 

(1)如采用+=、*=等缩略形式的运算符,系统会自动强制将运算结果转换为目标变量的类型。

(2) 当运算符为自动递增运算符(++)或自动递减运算符(--)时,如果操作数为byte,short或char类型不发生改变;

参考资料:百度百科-java关键字

以上是关于关于VB赋值语句强制转换等的主要内容,如果未能解决你的问题,请参考以下文章

Java中的强制类型转换是如何转换的?

关于强制类型转换(c语言)

vb中啥类型的变量之间可以相互转换

请问double型可以强制转换成int型吗?

关于java中的short和int类型转换的问题

关于不同类型字符的转换