JAVA语言中的运算符。
publicclassTest{publicstaticvoidmain(String[]args){bytei=1;while(true){System.out.pri...
public class Test{
public static void main (String []args){
byte i = 1;
while (true){
System.out.println(i);
i *= 10;
if(i>100)
return;
}
}
}
1.这个程序中*=是什么意思?
2.怎么修改才能让它不是一个死循环 展开
public static void main (String []args){
byte i = 1;
while (true){
System.out.println(i);
i *= 10;
if(i>100)
return;
}
}
}
1.这个程序中*=是什么意思?
2.怎么修改才能让它不是一个死循环 展开
展开全部
在i *= 10这个表达式中,i是byte型,10是int型。在运算的时候会发生类型强制转换,即将int型的10转换为byte型。在这个过程会发生截位,10的低8位将会被截掉参与运算,而这8位在溢出后表示的是0.所以是死循环。改正的方法是把i定义成int型,即int =1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
I*=10
相当于 i = 1*10;
if(i>100)
return; 你这里有结束的语句啊 不会死循环啊
相当于 i = 1*10;
if(i>100)
return; 你这里有结束的语句啊 不会死循环啊
追问
运行的就是死循环啊-。-
追答
嗯 楼上对的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自乘
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把if(i>100)改成if(i=100)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询