Καλησπέρα.πως θα μπορούσα να χρησιμοποιήσω την for για να μην έχω τόσα πολλά if στην λύση της 1ης άσκησης; δεν τα καταφέρνω
Κάτι σαν
for(int i=0; i<5; i++)
{
if(IsEven(r.next()))
Console.WriteLine("The number is even");
else
Console.WriteLine("The number is odd");
}
for(int i=0; i<5; i++)
{
if(IsEven(r.next()))
Console.WriteLine("The number is even");
else
Console.WriteLine("The number is odd");
}
Ωραία ευχαριστώω..γίενται έτσι σωστά αλλά δεν μπορώ να το κάνω έτσι ώστε να εμφανίζει και τον αριθμό που εξετάζει κάθε φορα...
Ωραία άσκηση, για δοκίμασε να παίξεις με τη συνθήκη στο if και με κάποια από τις άλλες δομές επανάληψης και πόσταρε εδώ τα ευρήματά σου...
Αρχικά δοκίμασα:
for(int i=0; i<5; i++)
{
if(IsEven(r.next()))
Console.WriteLine(r.next() + "The number is even");
else
Console.WriteLine(r.next() + "The number is odd");
}
αλλά μου έβζασε λάθος αποτελέσματα και φαντάστικα ότι θα παίρνει άλλους τυχαίους αριθμούς μέσα στο if από αυτές έξω...
μετά πριν τιν επαναληπτική δομή έφτιαξα ένα πίνακα με τους τυχαίους αριθμούς και έκανα foreach αλλα και πάλι λάθος τα έβγαζε....
Random r = new Random();
int num1 = r.Next();
int num2 = r.Next();
int num3 = r.Next();
int num4 = r.Next();
int num5 = r.Next();
int[] numbers = { num1, num2, num3, num4, num5 };
foreach(int num in numbers)
{
if (IsEven(r.Next()))
Console.WriteLine("The number : " + num + " The number is even");
else
Console.WriteLine("The number : " + num + " The number is odd");
}
Δεν μπορώ να σκεφτώ κάτι άλλο.....
for(int i=0; i<5; i++)
{
if(IsEven(r.next()))
Console.WriteLine(r.next() + "The number is even");
else
Console.WriteLine(r.next() + "The number is odd");
}
αλλά μου έβζασε λάθος αποτελέσματα και φαντάστικα ότι θα παίρνει άλλους τυχαίους αριθμούς μέσα στο if από αυτές έξω...
μετά πριν τιν επαναληπτική δομή έφτιαξα ένα πίνακα με τους τυχαίους αριθμούς και έκανα foreach αλλα και πάλι λάθος τα έβγαζε....
Random r = new Random();
int num1 = r.Next();
int num2 = r.Next();
int num3 = r.Next();
int num4 = r.Next();
int num5 = r.Next();
int[] numbers = { num1, num2, num3, num4, num5 };
foreach(int num in numbers)
{
if (IsEven(r.Next()))
Console.WriteLine("The number : " + num + " The number is even");
else
Console.WriteLine("The number : " + num + " The number is odd");
}
Δεν μπορώ να σκεφτώ κάτι άλλο.....
Θα σου πρότεινα να βάλεις :
if (IsEven(num))
{
Console.WriteLine("The number : " + num + " The number is even");
else
Console.WriteLine("The number : " + num + " The number is odd");
}
Αν βάλεις στο if αυτό που εχεις τότε τρέχει ξανά την random και δημιουργεί καινούργιο αριθμό και όχι αυτά που έχεις στον πίνακα.
if (IsEven(num))
{
Console.WriteLine("The number : " + num + " The number is even");
else
Console.WriteLine("The number : " + num + " The number is odd");
}
Αν βάλεις στο if αυτό που εχεις τότε τρέχει ξανά την random και δημιουργεί καινούργιο αριθμό και όχι αυτά που έχεις στον πίνακα.
Ακριβώς, η απάντηση είναι πολύ πιο απλή. Μέσα στη for θα πρέπει να αποθηκεύσεις την τυχαία τιμή που δημιουργείται σε μια τοπική μεταβλητή. Αυτή τη μεταβλητή θα την ελέγχεις αν είναι άρτια και θα εκτυπώνεις την τιμή της ανάλογα.
Αυτό;
for (int i = 0; i < 5; i++)
{
int number = r.Next();
if (IsEven(number))
Console.WriteLine(number + "The number is even");
else
Console.WriteLine(number + "The number is odd");
}
οπότε έτσι δεν χρειάζεται να γράψουμε και αυτό :
int num1 = r.Next();
int num2 = r.Next();
int num3 = r.Next();
int num4 = r.Next();
int num5 = r.Next();
σωστά;
for (int i = 0; i < 5; i++)
{
int number = r.Next();
if (IsEven(number))
Console.WriteLine(number + "The number is even");
else
Console.WriteLine(number + "The number is odd");
}
οπότε έτσι δεν χρειάζεται να γράψουμε και αυτό :
int num1 = r.Next();
int num2 = r.Next();
int num3 = r.Next();
int num4 = r.Next();
int num5 = r.Next();
σωστά;