Wie zu verwenden, WENN in der Switch Anweisung
Anwenden, wenn die Bedingung im Switch-Anweisung, ich soll für die Berechnung der Durchschnittlichen: aber ich habe versucht, die am besten um das Problem zu lösen, aber noch immer keine Ausgabe von Switch-Anweisung.
Ich bin Anfänger C++,
#include <iostream>
using namespace std;
int main()
{
//declaration of variables.
int sub1,sub2,sub3, sub4,sub5,total,avg;
//accepting marks from user in each subject
cout << " Enter Programming in C++ Marks: " << endl;
cin >> sub1;
cout << " Enter Software Engineering Marks : " << endl;
cin >> sub2;
cout << " Enter Personal Communication Marks : " << endl;
cin >> sub3;
cout << " Enter Database Application Marks: " << endl;
cin >> sub4;
cout << " Enter Computer Concept Marks: " << endl;
cin >> sub5;
//calculatin sum of marks obtained in each subject
total = (sub1 + sub2 + sub3 + sub4 + sub5);
//calculating the average marks
avg = total / 5;
//starting of if condition for finding out grades of total subjects.
switch (avg){
case 1:{
if ((avg >= 80) && (avg <= 100))
{
cout << " Your Average is: " << avg << endl;
cout << "You Grade is A+ " << endl;
}
break;
}
case 2:{
if ((avg >= 70) && (avg <= 79))
{
cout << " Your Average is: " << avg << endl;
cout << " Your grade is A " << endl;
}
break;
}
case 3:{
if ((avg >= 60) && (avg <= 69))
{
cout << " Your Average is: " << avg << endl;
cout << " Your Grade is B+ " << endl;
}
break;
}
case 4:{
if ((avg >= 50) && (avg <= 59))
{
cout << " Your Average is: " << avg << endl;
cout << " Your Grade is C+ " << endl;
}
break;
}
case 5: {
if ((avg >= 40) && (avg <= 49))
{
cout << " Your Average is: " << avg << endl;
cout << " Your Grade is C- ! " << endl;
}
break;
}
case 6: {
if ((avg >= 30) && (avg <= 39))
{
cout << " Your Average is: " << avg << endl;
cout << " Your Grade is D ! " << endl;
}
break;
}
default:{
if ((avg >= 100) && (avg <= 29))
{
cout << " Your Average is: " << avg << endl;
cout << " Your Grade is F, So you are Fail in the class ! " << endl;
break;
}
}
}
system("pause");
}
Ich denke, das haben Sie missverstanden die Verwendung von switch-case. Entfernen Sie den Schalter Fall, und Sie erhalten die gewünschte Ausgabe.
Vielen Dank Für Ihre Wertvolle Antwort. Ich weiß, der code ist falsch Eingegeben, aber ich möchte klar ich hab nur switch-Anweisung nur.
Vielen Dank Für Ihre Wertvolle Antwort. Ich weiß, der code ist falsch Eingegeben, aber ich möchte klar ich hab nur switch-Anweisung nur.
InformationsquelleAutor Mustafa Muhammad Yousif | 2012-07-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die switch-Anweisung wird verwendet, um die Ausführung eines code-block, der abhängig von einem bestimmten Wert. In einem Sinn, der switch-Anweisung kann gedacht werden als eine form der if-Anweisung: code
kann gelesen werden als
Ihre switch-Anweisung gelesen werden können als
und es gibt keine Möglichkeit, avg == 1 und größer als 80 und weniger als 100, das ist, warum Sie nicht bekommen, keine Ausgabe.
In C++, die switch-Anweisung eignet sich nicht gut zum testen reicht; ich würde nur verwenden Sie eine if-Anweisung:
Aber, wenn Sie wirklich, wirklich brauchen, um einen switch verwenden, es gibt ein paar Möglichkeiten, um darüber zu gehen:
Das ist hässlich, aber es ist einer switch-Anweisung. Ein sauberer Weg, um die switch-Anweisung könnte zu "zwingen" avg auf einen diskreten Wert, anstatt einer Reihe.
Nun reichen wird zwischen 0 und 10, vorausgesetzt, avg ist zwischen 0 und 100. Das sorgt für eine etwas sauberere Schalter:
Hoffe, das ist hilfreich.
hoffe mein edit geklärt, meine Antwort.
Ja Natürlich. Ich bin dankbar für Ihre Bemühungen. werden Sie mir bitte sagen, wie zu akzeptieren, die anser
Klicken Sie einfach auf das Häkchen Umriss; es werde grün
InformationsquelleAutor brismith
Gut,
switch
vergleicht diecase
s mit der variable, die Sie ihm gab. Also fürcase 1
es versucht zu vergleichenavg
zu1
und nach, dass es gehen würde mit Ihremif
Aussage, die, natürlich, würde nie anwenden.Ich bin mir nicht wirklich sicher, was Sie versuchen es; von allen ich sehe, du bist besser dran mit einer verschachtelten
if
:Aber auch, die verarbeitet werden können mehr aus, je nach Ihren Fähigkeiten. Zum Beispiel, teilen Sie der Durchschnitt von 10 und verwenden
switch
auf, dass die Ausnutzung der Tatsache, dass die integer-division schneidet, weshalb alles, was zwischen50
und59
in den gleichen Eimer5
:Auch Sie feststellen, dass Sie print »Dein Durchschnitt ist: ...« jedes mal, so dass Sie bewegen können, die Linie vor die Bedingungen:
Schließlich, da Sie eine ganz kleine Liste von möglichen Ergebnissen, die Sie sammeln, können Sie Sie in ein array und verweisen Sie einfach auf das entsprechende array-element, ohne selbst benötigen eine
if
/else if
oderswitch
:Meine Liebe. vielen Dank für Ihre Zeit und wertvollen Antworten mit Ihren Antworten (perfekte Antwort) ich mein problem gelöst.
InformationsquelleAutor Joey
Den Code immer wieder in Ihrem default-Anweisung , switch-Anweisung werden nicht immer alle Eingangs-wie im Falle.
InformationsquelleAutor Tejendra
Verwendung der switch-Anweisung etwas falsch, es ist nicht die
if
problem. Diese:bedeutet das gleiche wie
Also offensichtlich die Bedingung wird nie erfüllt werden. Für Ihren speziellen Fall können Sie einfach entfernen Sie den Schalter und lassen Sie nur die
if
s.InformationsquelleAutor SingerOfTheFall
Entfernen
Switch- case
und erhalten Sie Ihre gewünschte Ausgabe, da in diesem Fall es wird in der Standardeinstellung immer.InformationsquelleAutor user1463509
Wenn Sie sagen,
ist es dasselbe, als zu sagen
if(avg == 1)
. So entfernen Sie Ihre switch-case und behandeln Sie wie dieseInformationsquelleAutor Jeeva
Fall Situationen wie 1, 2, 3 sind anerkannt als der Wert des avg, die durch die switch-Anweisung.
Kann man nur den switch () - Kontrolle mit bestimmten Werten, NICHT Abständen. Ich empfehle Ihnen zu verwenden else if {} - Struktur in diesem Fall.
Oder u umsetzen können 1-Anweisung in mehreren Fällen (aber nicht lesbar).
Und Sie brauchen nicht zu verwenden Bereiche (geschweifte Klammern) für jeden Fall.
InformationsquelleAutor antonio
Die besten und wahrscheinlich die einfachste Sache zu tun ist, loszuwerden, die switch-Anweisung und verwenden Sie "if" und "elseif".
InformationsquelleAutor user1529058