正如它在标题中所说的那样,我无法找到解决方法来检查字符串PW
是否包含数字。如果字符串PW
包含数字,我如何签入TP?
repeat
writeln;
writeln('Ok, please enter your future password.');
writeln('Attention: The Text can only be decoded with the same PW');
readln(PW);
pwLength:= Length(PW);
error:=0;
for i:= 1 to Length(PW) do begin
if Input[i] in ['0'..'9'] then begin
error:=1;
end;
end;
if Length(PW)=0 then
begin
error:=1;
end;
if Length(PW)>25 then
begin
error:=1;
end;
if error=1 then
begin
writeln('ERROR: Your PW has to contain at least 1character, no numbers and has to be under 25characters long.');
readln;
clrscr;
end;
until error=0;
答案 0 :(得分:2)
这就是我编写代码的方式:
Error
这些是需要注意的一些事项:
请勿使用相同的错误代码值来表示不同类型的错误。对不同的错误使用相同的值会使您调试代码变得更加困难,因为您无法确定哪个测试给if error = 3 ...
值1。
定义常量以表示不同类型的错误。这样,读者就不必怀疑Break
一旦您在密码中检测到数字字符,就无法检查其后的字符,因此for
循环中的Unclassified
。
如果我是一名用户,我会很生气,直到程序告诉我我做错了之后才被告知规则是什么。事先告诉使用 规则是什么。
实际上,最好包含一个值为-1的额外常量Error
,并通过为其分配Error = Unclassified
来开始循环的每次迭代,并且后续步骤,测试PWIsOk
而不是case
。
$app->get('/{:token}', function ($req, $res){
// Do Something
});
语句是一种基于序数值选择多个互斥执行路径之一的整洁且易于维护的方式。