这是我的代码。我不明白为什么它不起作用。我试过调查但未找到原因。我需要使用bool吗? (我对编程很新) 谢谢,Jared
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication9
{
class Program
{
static void Main(string[] args)
{
string name;
Console.WriteLine("Hi. Whats your name?");
name = Console.ReadLine();
Console.WriteLine("Hi {0} my name is John", name);
Console.WriteLine("How old are you {0}?", name);
string age = Console.ReadLine();
if (age >= 35)
{
Console.WriteLine("You are getting old");
}
else if (age <= 35)
{
Console.WriteLine("You are still young");
}
else
{
Console.WriteLine("Thats not an option!");
}
}
}
}
答案 0 :(得分:3)
int age = 0;
var result = Int32.TryParse(Console.ReadLine(), out age);
if (result)
{
if (age >= 35)
{
Console.WriteLine("You are getting old");
}
else if (age <= 35)
{
Console.WriteLine("You are still young");
}
else
{
Console.WriteLine("Thats not an option!");
}
}
在将输入年龄转换为字符串之前,您必须检查您的输入是否为数字,以便使用Int32.TryParse()
答案 1 :(得分:2)
当您通过Console.ReadLine()
阅读输入时,它会返回string
当您尝试比较之后,您将字符串与整数进行比较。
首先需要将字符串转换为整数。
如果你想让它稳定并捕获错误的输入你可以放入try / catch块:
string age = Console.ReadLine();
try
{
int ageInInt = Convert.ToInt16(age);
if (ageInInt >= 35)
{
Console.WriteLine("You are getting old");
}
}
catch
{
Console.WriteLine("Please type a real number");
}
答案 2 :(得分:1)
输出console.readline()
是字符串,你检查与整数
int convertedage = Convert.ToInt(age);
if (convertedage >= 35)
{
Console.WriteLine("You are getting old");
}
答案 3 :(得分:0)
Console.ReadLine
返回string
值,您要将string
与int
进行比较,以便将值解析为int
int age = 0 ;
if(int.TryParse(Console.ReadLine(), out age)
{
if (age >= 35)
{
Console.WriteLine("You are getting old");
}
else if (age <= 35)
{
Console.WriteLine("You are still young");
}
else
{
Console.WriteLine("Thats not an option!");
}
}
答案 4 :(得分:0)
您遇到的问题是因为Console.ReadLine
将返回一个字符串,而不是您进行比较所需的整数。
另外作为附注,您的最终其他内容将永远不会到达,因为else if
将找到所有情况,如果没有。我假设你实际上意味着当用户没有输入数字时的最终消息。
您可以使用以下重写,如果可能,使用int.TryParse将输入转换为数字。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication9
{
class Program
{
static void Main(string[] args)
{
string name;
Console.WriteLine("Hi. Whats your name?");
name = Console.ReadLine();
Console.WriteLine("Hi {0} my name is John", name);
Console.WriteLine("How old are you {0}?", name);
string input = Console.ReadLine();
int age;
if (int.TryParse(input, out age)) {
if (age >= 35)
{
Console.WriteLine("You are getting old");
}
else // else if not needed
{
Console.WriteLine("You are still young");
}
}
else
{
Console.WriteLine("Thats not an option!");
}
}
}
}
答案 5 :(得分:0)
当你写这个“string age = Console.ReadLine();”你在左侧存储字符串类型。
如果将“age”与int(例如age&lt; 35)进行比较
或
assign int variable(int number = age;)age必须转换为整数。
转化是通过两种方式完成的
// First way
int number = Convert.ToInt32(age);
// Second way
int number = Int.Parse(age);