因此,我必须制作一个在使用时在控制台应用程序中输入“ FIN”时停止的程序,否则该程序继续。问题是我之后无法将给定的数字转换为整数。 这是代码
[https://pastebin.com/USTia33i]
Cet算法,按数字进行验证的身份验证。倒塞拉 阿根廷国家统计局ABCDEF GH IJKL MNOP,《塞舌尔邮政法》,l'algorithme 验证类型和功能验证方法的正确性。
using System;
using static System.Console;
using static System.Convert;
using static System.Math;
namespace Partie_2_Cartes_de_crédit
{
class Program
{
static void Main()
{
// Numéro de carte de crédit séparé blocs
Write("Entrez les 6 premiers chiffres de votre carte (ABCDEF) ou (FIN) pour arreter : ");
sting abcdef = ReadLine();
for (; ; )
{
/***/
if (abcdef == "FIN") break;
/***/
{
// Numéro de carte de crédit séparé blocs
Write("Entrez les 2 chiffres suivants de votre carte (GH) : ");
int gh = ToInt32(ReadLine());
Write("Entrez les 4 chiffres suivants de votre carte (IJKL) : ");
int ijkl = ToInt32(ReadLine());
Write("Entrez les 4 chiffres suivants de votre carte (MNOP) : ");
int mnop = ToInt32(ReadLine());
// Vérification pour une carte American Express
if (abcdef / 10000 == 34 || abcdef / 10000 == 37)
{
int abcde = abcdef / 10; // Numéro de carte de crédit séparé blocs
int fghijk = abcdef % 10 * 100000 + gh * 1000 + ijkl / 10;
int lmnop = ijkl % 10 * 10000 + mnop;
WriteLine("Le numéro " + abcde + " " + fghijk + " " + lmnop +
" indique une carte American Express, à valider en ligne.");
}
else
{
// Vérification pour une carte Visa
int abcd = abcdef / 100; // Numéro de carte de crédit séparé blocs
int efgh = abcdef % 100 * 100 + gh;
if (abcd / 1000 == 4)
{
WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
" indique une carte Visa à valider en ligne.");
}
// Vérification pour une carte MasterCard
else if (abcd / 100 >= 51 && abcd / 100 <= 55)
{
WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
" indique une carte MasterCard à valider en ligne.");
}
// Vérification pour une carte Sears
else if (abcd / 10 == 628 && abcd % 10 != 0 && efgh / 1000 != 0 && efgh / 100 % 10 != 0)
{
// Formule de Luhn
int i = ijkl / 1000; // Numéro de carte de crédit séparé en chiffre
int j = ijkl / 100 % 10;
int k = ijkl / 10 % 10;
int l = ijkl % 10;
int m = mnop / 1000;
int n = mnop / 100 % 10;
int o = mnop / 10 % 10;
int p = mnop % 10;
i *= 2;
k *= 2;
m *= 2;
p *= 2;
if (i >= 10)
{
i -= 9;
}
if (k >= 10)
{
k -= 9;
}
if (m >= 10)
{
m -= 9;
}
if (p >= 10)
{
p -= 9;
}
if (i + j + k + l + m + n + o + p % 10 == 0)
{
WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
" indique une carte Sears valide.");
}
else
{
WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
" indique une carte Sears invalide.");
}
}
// Vérification pour une carte Zellers
else if (abcd / 10 == 700)
{
// Formule de Luhn
int i = ijkl / 1000; // Numéro de carte de crédit séparé en chiffre
int j = ijkl / 100 % 10;
int k = ijkl / 10 % 10;
int l = ijkl % 10;
int m = mnop / 1000;
int n = mnop / 100 % 10;
int o = mnop / 10 % 10;
int p = mnop % 10;
i *= 2;
k *= 2;
m *= 2;
p *= 2;
if (i >= 10)
{
i -= 9;
}
if (k >= 10)
{
k -= 9;
}
if (m >= 10)
{
m -= 9;
}
if (p >= 10)
{
p -= 9;
}
if (i + j + k + l + m + n + o + p % 10 == 0)
{
WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
" indique une carte Zellers valide.");
}
else
{
WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
" indique une carte Zellers invalide.");
}
}
else
{
WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
" indique une carte inconne.");
}
}
}
}
}
}
}
答案 0 :(得分:0)
Int32.TryParse
返回一个布尔值并填充变量,检查布尔值是否确实是一个整数。
https://docs.microsoft.com/en-us/dotnet/api/system.int32.tryparse?view=netframework-4.7.2