short programme from "Programming in D" by Ali Cehreli.

Nick B via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Jun 14 02:17:35 PDT 2016


Hi, Can anyone assist me with the short D programme. It is taken 
straight from  "Programming in D" by Ali Cehreli.  The code below 
is the solution,  on page 684.
The  Exercise is on Page 27, item 2 half way down the page.

The problem is that the program crashes, when it runs.   The only 
thing I have changed is the placement of the curly brackets on 
new lines, otherwise the code is the same.  My text editor is 
Sublime 3 - Build 3114.

DMD32 D Compiler v2.069.2
Running on Win 7
result:
Microsoft Windows [Version 6.1.7601]
DMD32 D Compiler v2.069.2

C:\Users\Joan\Prog\Source>page27b
Roll the dice .....
3

object.Exception at C:\Users\Joan\Prog\D\dmd2\windows\bin\..\..\src\phobos\std\form
at.d(594): Enforcement failed
----------------
0x00403849
0x004037F4
0x0040251F
0x00402472
0x0040858F
0x00408553
0x00408454
0x00404C83
0x76DA338A in BaseThreadInitThunk
0x777B9902 in RtlInitializeExceptionChain
0x777B98D5 in RtlInitializeExceptionChain

C:\Users\Joan\Prog\Source>

***************************************************

Here is all the source:

import std.stdio;
void main ()
{
	writeln  ("Roll the dice .....");
	int die ;
	readf (" %s, &die");

	if ((die == 1) || (die == 2) || (die == 3))
		{
			writeln("You won");
		}
	else if ((die == 4) || (die == 5) || (die == 6))
		{
			writeln("I won");
		}
	else
		{
			writeln("ERROR: ", die , "is invalid");
		}
}


Note, this source below, take from the code samples .zip file 
works correctly !!

module if_solution_3;

import std.stdio;

void main() {
     write("What is the value of the die? ");
     int die;
     readf(" %s", &die);

     if ((die == 1) || (die == 2) || (die == 3)) {
         writeln("You won");

     } else if ((die == 4) || (die == 5) || (die == 6)) {
         writeln("I won");

     } else {
         writeln("ERROR: ", die, " is invalid");
     }
}

with Thanks
Nick


More information about the Digitalmars-d-learn mailing list