赞
踩
循环体;
}
执行顺序:
1、表达式1:只执行一次。初始化。
2、判断表达式2是否为真。
3、循环体
4、表达式3;
第二趟 开始 就不走表达式1的初始化了
从表达式2开始走
2、判断表达式2是否为真。
3、循环体
4、表达式3;
如果没有表达式2 那么JAVA认为他 永远为真
通过for循环来写一个死循环
for( ; ; )
{
循环体;
}
本题举例 如数字
x=-1 234 500
他是个负数,末尾还有0
对他进行反转,
首先 末位数 last=x%10=0
反转数 int rev=0
rev=rev*10+last;
这样如果末位数是个0
初始
rev=0*10+0
然后还有一个0
rev=(0*10+0)*10+0
后面的两个0都不会因为反转被摆在第一位第二位
这时候该对五进行反转
-123 450 0已经经过两次除10操作,把0全部去掉了
x=x/10两次,此时的x已经是 -12345了
然后 -12345%10==-5
last=-5(随着末位数last被除10弹出,负号也自带出来啦)
rev=0+(-5)
x=x/10=-12345/10=-1234
last=-1234%10=-4
rev=(0±5)*10+(-4)
顺次下去,三句话完成任意整数反转
while(x!=0)
{
last=x%10;
x=x/10;
rev=rev*10+last;
}
这时候一定有小伙伴在刷第一题是对官方题解(JAVA版本)中的 Integer.MAX_VALUE一头雾水,心里想:我擦,这是个什么妖魔鬼怪。
if(rev>Integer.MAX_VALUE||rev<Integer.MIN_VALUE)//这行代码是核心关键哦
{
return 0;
}
这一定是很多好兄弟的心声,刚想明白了while循环怎么写
这怎么还要对最大值做判断捏?刚降了一个妖怎么又来了一个魔?
下面请看详解ÿ
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。