C#大于或等于来自Console.Readline

时间:2016-06-15 07:27:56

标签: c#

这是我的代码。我不明白为什么它不起作用。我试过调查但未找到原因。我需要使用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!");
            }
        }
    }
}

6 个答案:

答案 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值,您要将stringint进行比较,以便将值解析为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);