C
C#12mo ago
trashboy

❔ help me about if and elses please

hi guys i am new at c# and i cant understand where is the problem at this code.
10 Replies
nukleer bomb
nukleer bomb12mo ago
; after ifs are odd
trashboy
trashboy12mo ago
oh okay i seee
nukleer bomb
nukleer bomb12mo ago
if(number4 > 80)
{
Console.WriteLine("A");
}
...
if(number4 > 80)
{
Console.WriteLine("A");
}
...
trashboy
trashboy12mo ago
okay i got it thank you
chef drone builder
Don’t use the convert class. Use int.parse instead
hiyosilver
hiyosilver12mo ago
Better yet, int.TryParse to verify user input is even valid.
nukleer bomb
nukleer bomb12mo ago
$tryparse
MODiX
MODiX12mo ago
The TryParse pattern is considered best practice of parsing data from a string: - a TryParse method returns true or false to inform you if it succeeded or not, so you can use it directly in a condition, - since C# 7 you can declare a variable that will be used as an out argument inline in an argument list, - it forces you to check if the out argument contains valid data afterwards, Avoid: Convert.ToInt32 — it's a bad choice for parsing an int. It exists only for backwards compatibility reasons and should be considered last resort.
return Convert.ToInt32(null); //returns 0. null should not be considered as 0 ever
return Convert.ToInt32("asdf"); //throws FormatException
return Convert.ToInt32(null); //returns 0. null should not be considered as 0 ever
return Convert.ToInt32("asdf"); //throws FormatException
(Note: Convert does contain useful conversion methods: To/FromBase64String, To/FromHexString, ToString(X value, int toBase), ToX(string? value, int fromBase)) Avoid: int.Parse — you have to use a try/catch statement to handle invalid input, which is a less clean solution.
var number = int.Parse("abc"); //throws FormatException
var number = int.Parse(""); //throws FormatException
var number = int.Parse("abc"); //throws FormatException
var number = int.Parse(""); //throws FormatException
Use int.TryParse https://docs.microsoft.com/en-us/dotnet/api/system.int32.tryparse?view=net-5.0#System_Int32_TryParse_System_String_System_Int32__
if (int.TryParse(someInput, out var result))
{
Console.WriteLine($"Thanks for giving me the following number: {result}!");
}
else
{
Console.WriteLine("You didn't give me a valid number :c");
}
if (int.TryParse(someInput, out var result))
{
Console.WriteLine($"Thanks for giving me the following number: {result}!");
}
else
{
Console.WriteLine("You didn't give me a valid number :c");
}
Int32.TryParse Method (System)
Converts the string representation of a number to its 32-bit signed integer equivalent. A return value indicates whether the operation succeeded.
Angius
Angius12mo ago
There's some other issues as well, like trying to use nonexistent variables, recursive use of variables, and the use of else instead of else if
Accord
Accord12mo ago
Was this issue resolved? If so, run /close - otherwise I will mark this as stale and this post will be archived until there is new activity.