modulo Strangeness?

Taylor Hillegeist via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Jun 11 15:40:41 PDT 2014


On Wednesday, 11 June 2014 at 22:38:02 UTC, Taylor Hillegeist 
wrote:
> On Wednesday, 11 June 2014 at 22:35:39 UTC, Taylor Hillegeist 
> wrote:
>> On Wednesday, 11 June 2014 at 22:32:45 UTC, Taylor Hillegeist 
>> wrote:
>>> I have a simpleish bit of code here that always seems to give 
>>> me an error, and i can't figure out quite why. If I have a 
>>> constant 43 in the modulo if breaks. however if i use 
>>> points.length it seems to be ok?
>>>
>>> import std.stdio;
>>> void main(){
>>> 	int points[43] = [0, 1153, 1905, 1996, 1392,  305, 
>>> -888,-1773,-2041,-1600, -603,  603, 1600,2041, 1773,  888, 
>>> -305,-1392,-1996,-1905,-1153, -0,1153, 1905, 1996, 1392,305, 
>>> -888,-1773,-2041,-1600, -603,  603, 1600, 2041, 1773,  888, 
>>> -305,-1392,-1996,-1905,-1153,    0];
>>> 	
>>> 	foreach(int x; points){
>>> 		writeln("List Value: ",points[(x%43)],"\t");
>>> 	}
>>>
>>> }
>>
>> Perhaps i am stupid....
>> 0..points.length lol? i've been looking at this too long.
>
> 	foreach(uint x; points){
> 		writeln("List Value: ",points[(x%43)],"\t");
> 	}
>
> this must work because its a different type than an element in 
> points[]

Negative indexes are possible with modulo... that is why i am 
getting breaking... sorry all.


More information about the Digitalmars-d-learn mailing list