关于For的循环问题,实在是头大了..求教!![附代码-已解决]
本帖最后由 apibits 于 2011-3-26 08:02 编辑请教大家,关于For的循环方法...
首先是提前的变量
Global $Level
$Level = 2660
$Level = 3620
$Level = 4700
$Level = 6982
$Level = 9478
$Level = 12441
$Level = 15884
$Level = 21801
$Level = 26680
$Level = 30144
$Level = 38540
$Level = 44250
$Level = 57850
$Level = 59456
$Level = 66410
$Level = 77000
$Level = 80000
$Level = 100000
问题是 如果我给出当前的Level是3级, 然后给出后面的经验 比如 50000 那么怎样用For循环 减除 在我是3级的情况下 给我50000 我该升级到那个等级?
如果当前等级为5级,已经拥有经验50000, 那么你最多可以升到?级,剩余?经验
问题实际上就是这句话.....应该怎么用For呢?求教啊...跪求
问题已经解决...谢谢了.... 为什么要用for呢 对于这种不知道要算几次问题最好用while
用for的话 也可以 只是要加exitloop
我写个while的不介意吧? 回复 2# love5173
关键是我现在就卡在这里了...实在是不知道到底用For还是 While了...
崩溃...掩面泪奔中... 那就FOR吧Global $Level
$Level = 2660
$Level = 3620
$Level = 4700
$Level = 6982
$Level = 9478
$Level = 12441
$Level = 15884
$Level = 21801
$Level = 26680
$Level = 30144
$Level = 38540
$Level = 44250
$Level = 57850
$Level = 59456
$Level = 66410
$Level = 77000
$Level = 80000
$Level = 100000
$a=InputBox("请输入给的经验","","50000")
Global $LV=0
For $i=3 To 21
If $i=21 Then
MsgBox(0,"","您放心您肯定大于20级")
EndIf
$LV=$LV+$Level[$i]
If $a<$LV Then
$i=$i-1
MsgBox(0,"您可以升到的级别为",$i)
ExitLoop
EndIf
不好意思 写的有点跟你的初衷有点不一样,如果需要我给你修改说下,如果觉得我给的提示够多了,自己去完善吧 Global $Level
$Level = 2660
$Level = 3620
$Level = 4700
$Level = 6982
$Level = 9478
$Level = 12441
$Level = 15884
$Level = 21801
$Level = 26680
$Level = 30144
$Level = 38540
$Level = 44250
$Level = 57850
$Level = 59456
$Level = 66410
$Level = 77000
$Level = 80000
$Level = 100000
$a=InputBox("请输入给的经验","","50000")
Global $i=InputBox("请输入当前级别","","3")
Global $LV=0
For $i=$i To 21
If $i>=21 Then
MsgBox(0,"","您放心您肯定大于20级")
EndIf
$LV=$LV+$Level[$i]
If $a<$LV Then
$i=$i-1
MsgBox(0,"您可以升到的级别为",$i)
ExitLoop
EndIf
Next
本帖最后由 apibits 于 2011-3-22 01:25 编辑
回复 6# love5173
稍等....先感谢了......我用你这个步骤自己改下试试看~~~ 谢谢~
求解释.... $Lv=$Lv+$Level[$i]这一句的意思.,,,,谢谢 回复 7# apibits
这个是递增,就是把你前面级别需要经验加起来,不知道你是不是这个意思,我是这么理解的,如果不是的话,那就更简单了,直接判断$Level[$I]<5000<$Level[$I+1]就可以了 回复 8# love5173
我是从这段话翻译到Au3的原本是Java脚本.....能帮忙解释下这个意思么?谢谢了.....
for(var 等级 = 输入框(等级); 等级 <= 20; 等级++){
if(typeof Level[等级] != 'undefined'){
tempExp += parseInt(Level[等级]);
if(tempExp == 输入框(当前拥有经验)){
升级等级 = 等级 + 1;
break;
}else if (tempExp > curExp){
升级等级 = 等级;
break;
}
}
if(等级 == 20){
升级等级 = 等级;
}
}
if(升级等级 < 原始等级) {
升级等级 = 原始等级;
本帖最后由 gapkiller 于 2011-3-22 10:43 编辑
Global $level =
$Current_EXP = InputBox("Input", "输入当前经验值")
$Upgrade_EXP = InputBox("Input", "输入升级经验值")
$NextLevel = 0
For $i = 0 To 20
If $Current_EXP+$Upgrade_EXP >= $level[$i] Then $NextLevel=$i
Next
MsgBox(0,0, "可以升级到Level: " & $NextLevel & @LF & "剩余经验值: " & $Current_EXP+$Upgrade_EXP-$level[$NextLevel]) 这里有个问题: $Level = 2660, $Level = 3620
是等级4的时候经验值是3620,还是还需要经验值3620? for 下递增 回复 9# apibits
我对java表示不懂 请其他人解答 回复 11# 3mile
Level = 2660 也就是 升级到4J需要 2660经验
而4那个就是升级到5级的经验 本帖最后由 apibits 于 2011-3-24 12:09 编辑
回复 10# gapkiller
感谢Gap 我需要自己消化下这几行代码的意思.
P.s
for(var 等级 = 输入框(等级); 等级 <= 20; 等级++){
if(typeof Level[等级] != 'undefined'){ ;;;;;------这一句不知道啥意思,,,,判断输入的是不是数字?
tempExp += parseInt(Level[等级]); ;;;;;这一句的+= 算啥????/
if(tempExp == 输入框(当前拥有经验)){
升级等级 = 等级 + 1;
break;
}else if (tempExp > 当前拥有经验){
升级等级 = 等级;
break;
}
}
if(等级 == 20){
升级等级 = 等级;
}
}
if(升级等级 < 原始等级) {
升级等级 = 原始等级;
上面这段话翻译成Au3 应该怎么写呢?
For dim $Gamelevel = InputBox("Input", "当前等级") To $Gamelevel<=20
$TempExp + $TempExp = Level[$Gamelevel]
if $TempExp = InputBox("Input", "已经有的经验值")then$升级等级 = $Gamelevel + 1
....
....
....
;弄不懂了...
页:
[1]
2