[your code here]

Matt Soucy msoucy at csh.rit.edu
Fri Feb 17 17:59:39 PST 2012


Thank you, however I feel that using the
case 'y','Y':
demonstrates another feature that C/C++ doesn't have. I'm aware of those 
two functions.
...although in the middle of testing this I realized that "guesses=0" 
should have been "guesses=1". Whoops.

On 02/17/2012 08:07 PM, MattCodr wrote:
> Nice, but just a little thing:
>
> switch(toUpper(returned)) {
> case 'Y': break checkLoop;
> case 'H': {low=guess; break;}
> case 'L': {high=guess; break;}
> default: break;
> }
>
> PS: Yeah you can you tolower() too!
>
>
> On Friday, 17 February 2012 at 23:50:32 UTC, Matt Soucy wrote:
>> #!/usr/bin/rdmd
>> import std.stdio;
>> void main()
>> {
>> uint guesses=0, high=100, low=0, guess=50;
>> char returned;
>> writef("Please choose a number between %s and %s.\n");
>> writef("Press enter to begin.",low,high);
>> readln();
>> checkLoop:
>> do {
>> guess = (high-low)/2+low; // Avoid overflow (shouldn't occur)
>> writef("Is your number %s? [(y)es, (h)igher, (l)ower] ", guess);
>> readf("%c", &returned);
>> readln();
>> switch(returned) {
>> case 'y','Y': break checkLoop;
>> case 'h','H': {low=guess; break;}
>> case 'l','L': {high=guess; break;}
>> default: break;
>> }
>> } while(++guesses);
>> writef("I guessed your number in %s moves!\n", guesses);
>> }
>>
>>
>> This piece is something I wrote quickly for /r/dailyprogrammer (By the
>> way, is the person who has been posting D solutions to that on here?)
>> It's a really simple piece, but it shows %s, breaking from a loop from
>> inside a switch, etc.
>
>


More information about the Digitalmars-d mailing list