c#我必须输入同样的东西3次,它也工作,我如何解决这个问题
本文关键字:何解决 工作 解决 问题 输入 3次 | 更新日期: 2023-09-27 17:51:00
这只是我做的一个简单的程序,所以需要一个密码才能打开chrome。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.IO;
namespace Bitch
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Type Help If You Need More Info:");
if(Console.ReadLine() == "UneedPassMate")
{
System.Diagnostics.Process.Start("chrome.exe");
System.Environment.Exit(0);
}
if(Console.ReadLine() == "Help")
{
Console.WriteLine("To Open Chrome'n You Will Need To Enter A Password>");
Console.ReadLine();
}
if (Console.ReadLine() == "help")
{
Console.WriteLine("To Open Chrome'n You Will Need To Enter A Password>");
Console.ReadLine();
}
}
}
}
但是每次我键入"帮助"或"帮助"时,直到我键入其中任何一个3次才会发生任何事情。有人能解决这个问题吗?这也不是第一次了。
您只需要读取一次用户的输入。试试这个:
var input = Console.ReadLine();
if(input == "UneedPassMate")
{
System.Diagnostics.Process.Start("chrome.exe");
System.Environment.Exit(0);
}
if (input.ToLower() == "help")
{
Console.WriteLine("To Open Chrome'n You Will Need To Enter A Password>");
Console.ReadLine();
}
每次执行Console.ReadLine()
时,程序都会等待输入。
你应该执行一次,把结果赋值给一个变量,然后检查这个变量。
Console.WriteLine("Type Help If You Need More Info:");
string input = Console.ReadLine();
if(input == "UneedPassMate")
{
System.Diagnostics.Process.Start("chrome.exe");
System.Environment.Exit(0);
}
if (input == "Help" || input == "help")
{
Console.WriteLine("To Open Chrome'n You Will Need To Enter A Password>");
Console.ReadLine();
}
与纯函数式编程语言相比,函数不一定是纯的,每次调用它们时很可能返回不同的输出。Console.ReadLine()
是一个"不纯"函数的例子,因为对于你的3次调用,它从控制台输入读取一个字符串,并返回用户输入的任何内容。
如果您只希望用户输入一次,则需要存储调用Console.ReadLine()
的结果,然后将该结果用于后续测试。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.IO;
namespace Bitch
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Type Help If You Need More Info:");
string input = Console.ReadLine(); // Only ask for input once not 3 times!
if(input == "UneedPassMate")
{
System.Diagnostics.Process.Start("chrome.exe");
System.Environment.Exit(0);
}
if(input == "Help")
{
Console.WriteLine("To Open Chrome'n You Will Need To Enter A Password>");
Console.ReadLine();
}
if (input == "help")
{
Console.WriteLine("To Open Chrome'n You Will Need To Enter A Password>");
Console.ReadLine();
}
}
}
}