apibits 发表于 2011-3-22 00:37:30

关于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呢?求教啊...跪求





问题已经解决...谢谢了....

love5173 发表于 2011-3-22 00:50:33

为什么要用for呢 对于这种不知道要算几次问题最好用while
用for的话 也可以 只是要加exitloop
我写个while的不介意吧?

apibits 发表于 2011-3-22 00:54:11

回复 2# love5173


关键是我现在就卡在这里了...实在是不知道到底用For还是 While了...
崩溃...掩面泪奔中...

love5173 发表于 2011-3-22 01:09:18

那就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

love5173 发表于 2011-3-22 01:11:18

不好意思 写的有点跟你的初衷有点不一样,如果需要我给你修改说下,如果觉得我给的提示够多了,自己去完善吧

love5173 发表于 2011-3-22 01:16:06

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:23:26

本帖最后由 apibits 于 2011-3-22 01:25 编辑

回复 6# love5173


   稍等....先感谢了......我用你这个步骤自己改下试试看~~~ 谢谢~

求解释....   $Lv=$Lv+$Level[$i]这一句的意思.,,,,谢谢

love5173 发表于 2011-3-22 01:30:14

回复 7# apibits
这个是递增,就是把你前面级别需要经验加起来,不知道你是不是这个意思,我是这么理解的,如果不是的话,那就更简单了,直接判断$Level[$I]<5000<$Level[$I+1]就可以了

apibits 发表于 2011-3-22 02:03:51

回复 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:42:05

本帖最后由 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])

3mile 发表于 2011-3-22 14:01:55

这里有个问题: $Level = 2660, $Level = 3620
是等级4的时候经验值是3620,还是还需要经验值3620?

gzh888666 发表于 2011-3-22 21:52:32

for 下递增

love5173 发表于 2011-3-22 22:05:53

回复 9# apibits
我对java表示不懂 请其他人解答

apibits 发表于 2011-3-24 11:33:08

回复 11# 3mile


    Level = 2660 也就是 升级到4J需要 2660经验
而4那个就是升级到5级的经验

apibits 发表于 2011-3-24 11:34:02

本帖最后由 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
查看完整版本: 关于For的循环问题,实在是头大了..求教!![附代码-已解决]