【发布时间】:2016-01-15 15:49:18
【问题描述】:
这是我的作业,已编辑:
一些网站对密码有一定的规定。编写一个检查字符串是否为有效密码的函数。假设密码规则如下:
- 密码必须至少包含八个字符。
- 密码仅由字母和数字组成。
- 密码必须至少包含两位数字。
编写一个 C# 程序,提示用户输入密码,如果遵循规则则显示 Valid Password,否则显示 Invalid Password
这就是我现在所做的:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please enter a Password: ");
String password = Console.ReadLine();
if (isValid(password))
{
Console.WriteLine("Valid Password");
}
else
{
Console.WriteLine("Invalid Password");
}
}
public static bool isValid(String password)
{
if (password.Length < 8)
{
return false;
}
else
{
char c;
int count = 1;
for (int i = 0; i < password.Length - 1; i++)
{
c = password[i];
if (!Char.IsLetterOrDigit(c))
{
return false;
}
else if (Char.IsDigit(c))
{
count++;
if (count < 2)
{
return false;
}
}
}
}
return true;
}
}
但是有一个问题我找不到
【问题讨论】:
-
退出for...循环后执行count测试
-
你找不到什么问题?
-
@Steve 很好,这个问题会导致 for 循环在第一次在输入字符串中找到一个数字时退出。我会添加它作为答案。
-
“它不起作用。”不是一个好的问题陈述。
-
感谢@RonBeyer,但作为一个家庭作业,我会让发帖者自己尝试一下。这会比给他写代码更有用