Blockland Forums > Modification Help
Why won't this work?
soba:
--- Quote from: Gadgethm on January 23, 2012, 12:22:09 AM ---No, the echo is run on every loop. The for loop runs for an infinite number of times until %i>=%y then it stops. So test(%y) would count up to whatever number you put in and echo each time it counts.
--- End quote ---
I see
EDIT: then that loop never ends
Brian Smithers:
Fixed I think. ._.
Nexus:
--- Quote from: Brian Smithers on January 23, 2012, 12:43:05 AM ---Fixed I think. ._.
--- End quote ---
%i++ and echo(%i); you big silly willy
The reason the code in the OP does not work is mainly because it does not loop at all
--- Quote from: I-have-not on January 22, 2012, 11:43:34 PM ---
function count(%y)
{
%y=0;
if(%y != 10)
{
echo(%y++);
}
}
--- End quote ---
First of all, the %y=0; would negate the point of having a %y argument
then it tests for if y is equal to ten, since it just got set to zero, this will of course be false.
The it will echo y incremented by one, which is 0+1 = 1
But then it hits the end of the function. To do this in the format you might be looking for...
--- Code: ---function count(%y)
{
if(%y < 10)
{
echo(%y++);
count(%y);
}
}
--- End code ---
Having it call another count will make it loop back and call the function again, causing %y to again be incremented and echoed, which is exactly what you were trying to do.
That way, if you enter count(0); into the console, it should work correctly.
Another method you might have been trying would be
function count(%y)
{
while(%y<10)
{
echo(%y++);
}
}
which will run all the code inside the while loop until the test (%y<10) is no longer true
Lugnut:
But that last example wouldn't modify the variable
Don't you need a %y++ on its own?
Ipquarx:
Fixed:
--- Code: ---function Count(%end)
{
for(%count = 1; %count <= %end; %count++)
echo(%count);
}
--- End code ---