KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: Break Bedingung
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Soo habe ein Problem ich habe einmal eine Schleife ohne Break Bedingung..

In dieser Schleife ist noch eine Schleife mit der Bedingung das wen O gedrückt wird "gebreaked" wird !

In dieser Zweiten Schleife ist auch nochmal eine Schleife mit genau der selben break Bedingung doch wenn ich dann in der dritten Schleife bin und O drücke komme ich nicht wie gewollt in die zweite sondern in die erste !

Wenn euch das nicht hilft kann ich auch mal den Code posten ..
Hi,
so ganz ohne Code ist nicht schön...Bitte pack den mal hier rein.
Im algemeinen führt der BREAK befehl zum abbruch der akuelleen logischen ausführungseinheit und wechselt zur nächst höheren...

mal vereinfacht dargestellt:

PHP-Code:
loop 1
 loop 2
    loop 3
    
break; //hier gehts nach endloop3 weiter
    
endloop 3
    
break; //hier gehts nach endloop2 weiter
 
endloop 2
 loop 4
  
break; //hier gehts nach endloop4 weiter
 
endloop 4
endloop1 

Code:
--Ultimate Monster Hunter Tool by Artem 2009 (Alpha)
-- Variablen Start
menumonster = Image.load("data/menumonster.png")
menumonsterhigh = Image.load("data/menumonsterhigh.png")
menukarten = Image.load("data/menukarten.png")
menukartenhigh = Image.load("data/menukartenhigh.png")
menukombi = Image.load("data/menukombi.png")
menukombihigh = Image.load("data/menukombihigh.png")
menuback = Image.load("data/menuback.png")
menuback3 = Image.load("data/menuback3.png")
menupos = 1
menuposk = 1
weis = Color.new(255,255,255)
rot = Color.new(255,0,0)
-- Variablen Ende

    
[color=#FF0000]
while true do
screen:clear()
pad = Controls.read()

screen:blit(0,0,menuback,true)

if pad:down() then
  menupos=menupos + 1
  screen.waitVblankStart(11)
end

if pad:up() then
  menupos = menupos - 1
  screen.waitVblankStart(11)
end

if menupos >3 then
  menupos=1
end

if menupos <1 then
  menupos=3
end

if menupos == 1 then
screen:blit(145,82,menumonsterhigh,true)
else screen:blit(145,82,menumonster,true)
end

if menupos == 2 then
screen:blit(145,147,menukartenhigh,true)
else screen:blit(145,147,menukarten,true)
end

if menupos == 3 then
screen:blit(145,212,menukombihigh,true)
else screen:blit(145,212,menukombi,true)
end

if menupos==1 and pad:cross() then
dofile("data/monstercode.lua")
end

[color=#000080]
if menupos==2 and pad:cross() then
if pad:cross() then
while pad:cross() do
pad = Controls.read()
end
while true do
pad = Controls.read()

screen:blit(0,0,menuback3,true)

if pad:down() then
if menuposk <11 then
menuposk=menuposk + 1
screen.waitVblankStart(12)
else menuposk = menuposk
end
end

if pad:up() then
if menuposk > 1 then
menuposk = menuposk - 1
screen.waitVblankStart(12)
else menuposk = menuposk
end
end

if menuposk == 1 then
screen:print(21,21," Alter Dschungel", rot)
else
screen:print(21,21," Alter Dschungel", weis)
end

if menuposk == 2 then
screen:print(21,33," Alter Sumpf", rot)
else
screen:print(21,33," Alter Sumpf", weis)
end

if menuposk == 3 then
screen:print(21,45," Alter Vulkan", rot)
else
screen:print(21,45," Alter Vulkan", weis)
end

if menuposk == 4 then
screen:print(21,57," Alte Wueste", rot)
else
screen:print(21,57," Alte Wueste", weis)
end

if menuposk == 5 then
screen:print(21,69," Berge", rot)
else
screen:print(21,69," Berge", weis)
end

if menuposk == 6 then
screen:print(21,81," Dschungel", rot)
else
screen:print(21,81," Dschungel", weis)
end

if menuposk == 7 then
screen:print(21,93," Sumpf", rot)
else
screen:print(21,93," Sumpf", weis)
end

if menuposk == 8 then
screen:print(21,105," Tuerme", rot)
else
screen:print(21,105," Tuerme", weis)
end

if menuposk == 9 then
screen:print(21,117," Vulkan", rot)
else
screen:print(21,117," Vulkan", weis)
end

if menuposk == 10 then
screen:print(21,129," Wald und Huegel", rot)
else
screen:print(21,129," Wald und Huegel", weis)
end

if menuposk == 11 then
screen:print(21,141," Wueste", rot)
else
screen:print(21,141," Wueste", weis)
end

[color=#008000]
if menuposk == 1 then
if pad:cross() then
if pad:cross() then
while pad:cross() do
pad = Controls.read()
end
while true do
pad = Controls.read()

screen:blit(0,0,Image.load("data/karten/alterdschungel.png"),true)

if pad:circle() then
screen.waitVblankStart(11)
break
end

screen.waitVblankStart()
screen:flip()
end
end
end
end
[/color]

if menuposk == 2 then
if pad:cross() then
dofile("data/karten/altersumpf.lua")
end
end

if menuposk == 3 then
if pad:cross() then
dofile("data/karten/altervulkan.lua")
end
end

if menuposk == 4 then
if pad:cross() then
dofile("data/karten/altewuste.lua")
end
end

if menuposk == 5 then
if pad:cross() then
dofile("data/karten/berge.lua")
end
end

if menuposk == 6 then
if pad:cross() then
dofile("data/karten/dschungel.lua")
end
end

if menuposk == 7 then
if pad:cross() then
dofile("data/karten/sumpf.lua")
end
end

if menuposk == 8 then
if pad:cross() then
dofile("data/karten/turme.lua")
end
end

if menuposk == 9 then
if pad:cross() then
dofile("data/karten/vulkan.lua")
end
end

if menuposk == 10 then
if pad:cross() then
dofile("data/karten/waldundhugel.lua")
end
end

if menuposk == 11 then
if pad:cross() then
dofile("data/karten/wuste.lua")
end
end




if pad:circle() then
break
end



screen.waitVblankStart()
screen:flip()
end
end
end
[/color]

if menupos==3 and pad:cross() then
dofile("data/kombicode.lua")
end


if pad:square() then
dofile("data/creditcode.lua")
end

screen.waitVblankStart()
screen:flip()
end[/color]


Hab die Besagten 3 Schelifen mal markiert .. es ist mein Homebrew was auch funktionier aber eben viele dofiles benuzt und jetzt will ich es alles in einen Code packen ^^

Ich würde es ein wenig anderes gestalten damit du auch immer wieder in die richtige Schleife kommst.

Code:
menu1 = true
menu2 = false
menu3 = false

while true do
while menu1 == true do
...
end

while menu2 == true do
..
end

while menu3 == true do
...
end

end

Dann halt immer das Menu auf true setzten welches gerade aktiv sein sollen.

Hi,

deinem Code zu folge ist das hier LUA...sorry ...da kann ich doch nicht so helfen, wie ich erst dachte, da ich rein aus der C/C++ ecke komme. Aber das Prinzip müsste das selbe sein. Die von pspbricker vorgeschlagene Umstellung macht auf jeden fall Sinn Smile
Danke das macht Sinn musste etwas überlegen aber nun verstehe ich wie ich es umstellen sollte ..

Danke so sollte es weniger kompliziert werden Wink
Referenz-URLs