On Wednesday, 10 August 2022 at 14:03:53 UTC, Andrey Zherikov wrote:
On Wednesday, 10 August 2022 at 13:34:53 UTC, pascal111 wrote:
So, the program will be like this:

Is this clearer?

```d

import std.stdio;
import std.algorithm;
import std.range;

double getNumber()
{
    double x;

    write("Enter a number: ");
    readf(" %s\n", &x);
    writeln;

    return x;
}

int getChoice()
{
    while(true)
    {
writeln("1) addition 2) subtraction 3) multiplication 4) division 0) exit -1) new");
        ": ".write;

        int choice;
        readf(" %s\n", &choice);

        if(only(1,2,3,4,0,-1).canFind(choice))
            return choice;
    }
}

int main()
{
    double x, y;

    y = getNumber();

    while(true)
    {
        int choice = getChoice();

        if(choice==0)
            return 0;
        else if(choice==-1)
                        y = getNumber();
        else
        {
            write("Enter a number: ");
            readf(" %s\n", &x);

            switch(choice){

                case 1: y+=x; break;
                case 2: y-=x; break;
                case 3: y*=x; break;
                case 4: y/=x; break;
                default: break;}

            y.writeln;
        }
    }
}
```

This version has modern features, it's 1) functional 2) goto-less.

Reply via email to