www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Yes or No Options

reply "Alex" <age bcc-group.de> writes:
Hey guys!

I am super new to programming and still trying to learn the very 
basics via a book that I bought.

My problem is the following:



import std.stdio;
import std.string;


void main()
{
	char[] yesno;

	write("Roll the dice: Enter a number!");
	int dieNumber;
	readf(" %s", &dieNumber);

	if (dieNumber < 4) {
	writeln("You won!");
	}
	else if ((dieNumber >= 4) && (dieNumber <= 6)) {
		writeln("I won!");
	}
	else if (dieNumber > 6){
		writeln("ERROR: Invalid Value");
	}

	writeln("Do you want to play again? Y/N?");
	readln(yesno);
	if (yesno == "Y") {
		writeln("Let's go again!");
	}

}


The program quits after "writeln("Do you want to play again? 
Y/N?");"
It ignores readln.

Furthermore: What I am actually trying to do is: If I type "Y", 
the programm should just rerun from the beginning.

I am really new to programming and there is probably a much 
easier way but this is all I know to this point.

Thanks in advance!
Jul 27 2015
next sibling parent "John Colvin" <john.loughran.colvin gmail.com> writes:
On Monday, 27 July 2015 at 15:40:56 UTC, Alex wrote:
 Hey guys!

 I am super new to programming and still trying to learn the 
 very basics via a book that I bought.

 [...]
This isn't the right place for this sort of question, please use http://forum.dlang.org/group/learn, I'm sure someone will be able to help you there.
Jul 27 2015
prev sibling parent "Brad Anderson" <eco gnuk.net> writes:
On Monday, 27 July 2015 at 15:40:56 UTC, Alex wrote:
 The program quits after "writeln("Do you want to play again? 
 Y/N?");"
 It ignores readln.

 Furthermore: What I am actually trying to do is: If I type "Y", 
 the programm should just rerun from the beginning.

 I am really new to programming and there is probably a much 
 easier way but this is all I know to this point.

 Thanks in advance!
As John said, the Learn forum is a better spot for this but as far as your problem goes, look into the do-while loop construct. It's perfect for this situation. You could also use "break" inside of an infinite while loop. Good luck.
Jul 27 2015