2017-02-06 3 views
0

Ich habe Schwierigkeiten mit der Methode. Mein Code scheint gut zu funktionieren, bis ich meine Formel für die Methode erreiche. Ich habe etwas Ähnliches getan, ich sehe nicht, was ich falsch mache. Es ist der Teil, der YearsToWork hat.Problem mit der Methode Subtraktion C#

int age; 
int yearsToWork; 

Console.Write("Enter your name:"); 
string name = Console.ReadLine(); 

Console.Write("Enter your age:"); 
age = Convert.ToInt32(Console.ReadLine()); 

yearsToWork = 65 - age; 
Console.Write("\nYou will work:", yearsToWork); 
Console.Write("years before you retire."); 
Console.Read(); 

Vielen Dank für die Unterstützung.

+5

Was ist das Problem? – SLaks

+2

Siehe die Dokumentation zu 'Console.Write()'; Die Parameter bedeuten nicht, was Sie meinen, sie meinen. – SLaks

Antwort

1

Dies sollte funktionieren:

static void Main(string[] args) 
    { 
     int age; 
     int YearsToWork; 

     Console.Write("Enter your name:"); 
     string name = Console.ReadLine(); 
     Console.Write("Enter your age:"); 
     age = Convert.ToInt32(Console.ReadLine()); 
     YearsToWork = 65 - age; 
     Console.WriteLine("You will work: {0} years before you retire", YearsToWork); 
     Console.Read(); 
    } 

Console.WriteLine(); arbeiten ähnlich wie string.Format(); beim Einfügen einer Zeichenfolge;
Der erste Parameter nach der Zeichenfolge sein wird {0}, zweite Saite {1} und so weiter ...

+0

Ja, es hat funktioniert, vielen Dank! Danke auch für die Erklärung. Ich bin noch ziemlich neu in C# und jetzt verstehe ich es ein wenig besser. – Shade

1

Versuchen Sie folgendes:

Console.Write("\nYou will work: " + YearsToWork.ToString()); 

Wie MSDN sagt, Console.Write:

Schreibt die Textdarstellung des angegebenen Objekts in der Standard Ausgabestrom der angegebenen Formatinformationen verwendet wird.

https://msdn.microsoft.com/en-us/library/9xdyw6yk(v=vs.110).aspx

Und dass der Wert, den Sie erwarten, möglicherweise nicht.

0

Das Problem wird Sie Console.Write("\nYou will work:", YearsToWork); fordern, die die string und nichts anderes nur schreibt, wollte, wenn Sie generieren eine ausführlichere Nachricht sollten Sie string.Format oder die Console.WriteLine verwenden. Ihr Code sollte wie folgt sein:

int maxWorkAge = 65; 
Console.Write("Enter your name:"); 

string name = Console.ReadLine(); 
Console.Write("Enter your age:"); 
int age = Convert.ToInt32(Console.ReadLine()); 

int yearsToWork = maxWorkAge - age; 

Console.WriteLine(); 
Console.Write("You will work: {0} years before you retire.", yearsToWork); 
Console.Read(); 

Beachten Sie, dass ich eingestellt haben alle Variablennamen lowerCamelCase und erklärte sie je nach Bedarf, auch habe ich eine Variable für die 65 (was auch eine Konstante sein könnte) Konstante, die du benutzt hast. All dies sind Best-Practice-Empfehlungen. Hoffe, das hilft