Re: no print function output do while

2017-09-28 Thread dark777 via Digitalmars-d-learn

On Thursday, 28 September 2017 at 21:34:46 UTC, arturg wrote:
On Thursday, 28 September 2017 at 20:17:24 UTC, Ali Çehreli 
wrote:

On 09/28/2017 12:18 PM, dark777 wrote:
On Thursday, 28 September 2017 at 18:46:56 UTC, Ali Çehreli 
wrote:

On 09/28/2017 08:13 AM, dark777 wrote:

no print function output do while

in my program after entering the data and select the 
function that will print on the screen the same is not 
printing ..


and if I choose 'q' or 'Q' does the program not close what 
is happening?

should not it work just like in C ++?

https://pastebin.com/iiMVPk4x


You made a simple logic error. Change the following || to &&:

    }while(choice != 'q' || choice != 'Q');

Ali


I think it should not give this error

good but until now I do not understand why after I enter with 
data in the function add_human


the same is not printed when I choose the 'p' or 'P' option 
in the case


void print_list(Human[] human_list)
{
  foreach(human; human_list)
    {
     writefln("\nNome: %s",human.name);
     writefln("Peso: %0.2f",human.peso);
     writefln("Idade: %d\n",human.age);
    }
}


It's because add_human is appending to its own array. Change 
it to by-ref:


void add_human(ref Human[] human_list)

Ali


while(choice != 'q' || choice != 'Q');
doesn't seem to exit the loop, while this works:
while(choice != 'q');
or
while(!(choice == 'q' || choice == 'Q'));

wouldn't it be better to use a labeled statement instead?

endless : while(true)
{
...

switch(choice)
{
...

case 'Q':
case 'q': break endless;

...
}
}


It's good that it worked out here.


Re: no print function output do while

2017-09-28 Thread arturg via Digitalmars-d-learn

On Thursday, 28 September 2017 at 20:17:24 UTC, Ali Çehreli wrote:

On 09/28/2017 12:18 PM, dark777 wrote:
On Thursday, 28 September 2017 at 18:46:56 UTC, Ali Çehreli 
wrote:

On 09/28/2017 08:13 AM, dark777 wrote:

no print function output do while

in my program after entering the data and select the 
function that will print on the screen the same is not 
printing ..


and if I choose 'q' or 'Q' does the program not close what 
is happening?

should not it work just like in C ++?

https://pastebin.com/iiMVPk4x


You made a simple logic error. Change the following || to &&:

    }while(choice != 'q' || choice != 'Q');

Ali


I think it should not give this error

good but until now I do not understand why after I enter with 
data in the function add_human


the same is not printed when I choose the 'p' or 'P' option in 
the case


void print_list(Human[] human_list)
{
  foreach(human; human_list)
    {
     writefln("\nNome: %s",human.name);
     writefln("Peso: %0.2f",human.peso);
     writefln("Idade: %d\n",human.age);
    }
}


It's because add_human is appending to its own array. Change it 
to by-ref:


void add_human(ref Human[] human_list)

Ali


while(choice != 'q' || choice != 'Q');
doesn't seem to exit the loop, while this works:
while(choice != 'q');
or
while(!(choice == 'q' || choice == 'Q'));

wouldn't it be better to use a labeled statement instead?

endless : while(true)
{
...

switch(choice)
{
...

case 'Q':
case 'q': break endless;

...
}
}


Re: no print function output do while

2017-09-28 Thread Ali Çehreli via Digitalmars-d-learn

On 09/28/2017 12:18 PM, dark777 wrote:

On Thursday, 28 September 2017 at 18:46:56 UTC, Ali Çehreli wrote:

On 09/28/2017 08:13 AM, dark777 wrote:

no print function output do while

in my program after entering the data and select the function that 
will print on the screen the same is not printing ..


and if I choose 'q' or 'Q' does the program not close what is happening?
should not it work just like in C ++?

https://pastebin.com/iiMVPk4x


You made a simple logic error. Change the following || to &&:

    }while(choice != 'q' || choice != 'Q');

Ali


I think it should not give this error

good but until now I do not understand why after I enter with data in 
the function add_human


the same is not printed when I choose the 'p' or 'P' option in the case

void print_list(Human[] human_list)
{
  foreach(human; human_list)
    {
     writefln("\nNome: %s",human.name);
     writefln("Peso: %0.2f",human.peso);
     writefln("Idade: %d\n",human.age);
    }
}


It's because add_human is appending to its own array. Change it to by-ref:

void add_human(ref Human[] human_list)

Ali


Re: no print function output do while

2017-09-28 Thread dark777 via Digitalmars-d-learn

On Thursday, 28 September 2017 at 18:46:56 UTC, Ali Çehreli wrote:

On 09/28/2017 08:13 AM, dark777 wrote:

no print function output do while

in my program after entering the data and select the function 
that will print on the screen the same is not printing ..


and if I choose 'q' or 'Q' does the program not close what is 
happening?

should not it work just like in C ++?

https://pastebin.com/iiMVPk4x


You made a simple logic error. Change the following || to &&:

}while(choice != 'q' || choice != 'Q');

Ali


I think it should not give this error

good but until now I do not understand why after I enter with 
data in the function add_human


the same is not printed when I choose the 'p' or 'P' option in 
the case


void print_list(Human[] human_list)
{
 foreach(human; human_list)
   {
writefln("\nNome: %s",human.name);
writefln("Peso: %0.2f",human.peso);
writefln("Idade: %d\n",human.age);
   }
}


Re: no print function output do while

2017-09-28 Thread Ali Çehreli via Digitalmars-d-learn

On 09/28/2017 08:13 AM, dark777 wrote:

no print function output do while

in my program after entering the data and select the function that will 
print on the screen the same is not printing ..


and if I choose 'q' or 'Q' does the program not close what is happening?
should not it work just like in C ++?

https://pastebin.com/iiMVPk4x


You made a simple logic error. Change the following || to &&:

}while(choice != 'q' || choice != 'Q');

Ali


no print function output do while

2017-09-28 Thread dark777 via Digitalmars-d-learn

no print function output do while

in my program after entering the data and select the function 
that will print on the screen the same is not printing ..


and if I choose 'q' or 'Q' does the program not close what is 
happening?

should not it work just like in C ++?

https://pastebin.com/iiMVPk4x