gpt4 book ai didi

java - 输入 no 时进程不会终止

转载 作者:行者123 更新时间:2023-11-29 05:52:16 25 4
gpt4 key购买 nike

package homework4;
import java.util.Scanner;
public class Prog4 {
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args)
{ CreditCardNumber[] cred1;
CreditCardNumber cred2 = getInput();
Display("The complete number from your input:", cred2);
cred1 = getInputArray();
DisplayArray(cred1);
TryAnother(cred1);
}

public static CreditCardNumber getInput() {
String ID;
String accNum;
CreditCardNumber tempCred;
System.out.printf("Please enter issuer ID:");
ID = scanner.next();
System.out.printf("Please enter account number:");
accNum = scanner.next();
tempCred = new CreditCardNumber(ID, accNum);

return tempCred;
}
public static void Display(String ch, CreditCardNumber cred2)
{

System.out.println(ch);
System.out.println(cred2.toString().replaceAll(".{4}", "$0 "));
}

public static CreditCardNumber[] getInputArray()
{
CreditCardNumber[] tempArray;
String tempID;
int size;
System.out.printf("Please enter size of the aray:");
size = scanner.nextInt();
if(size < 1)
{
size = 1;
}
tempArray = new CreditCardNumber[size];
System.out.printf("Please enter issuer ID:");
tempID = scanner.next();
for(int i = 0; i < tempArray.length; i++)
{
tempArray[i] = new CreditCardNumber();
tempArray[i].CreateCred(tempID);
}

return tempArray;
}

public static void DisplayArray(CreditCardNumber[] cred1)
{
for(int i = 0; i< cred1.length; i++)
{
Display("Credit Card # " + i+":" + '\n', cred1[i]);
}
System.out.println();
}

public static boolean TryAnother(CreditCardNumber[] cred1)
{
String s;
System.out.printf("Get more credit card numbers? (n for no):");
s = scanner.next();
while(s.charAt(0) != 'N' && s.charAt(0) != 'n')
{
cred1 = getInputArray();
DisplayArray(cred1);
if(s.charAt(0) != 'N' && s.charAt(0) != 'n')
TryAnother(cred1);
}


return false;
}
}

您好,我对 Tryanother 方法有疑问,当我回答“否”时,进程不会终止,而是提示用户再次输入数组的大小,如下所示:

Please enter issuer ID:321321
Please enter account number:654654654
The complete number from your input:
3213 2165 4654 6549
Please enter size of the aray:7
Please enter issuer ID:789789
Credit Card # 0:

7897 8987 8895 1653
Credit Card # 1:

7897 8935 5880 5197
Credit Card # 2:

7897 8997 8152 8134
Credit Card # 3:

7897 8996 1605 8067
Credit Card # 4:

7897 8953 2006 5521
Credit Card # 5:

7897 8964 3319 8191
Credit Card # 6:

7897 8986 1830 7068

Get more credit card numbers? (n for no):y
Please enter size of the aray:3
Please enter issuer ID:345345
Credit Card # 0:

3453 4590 2392 9734
Credit Card # 1:

3453 4549 5025 1905
Credit Card # 2:

3453 4504 2989 0927

Get more credit card numbers? (n for no):n
Please enter size of the aray:

如您所见,当我输入“y”时程序运行,它提示用户输入数组的大小,但是当我输入“n”而不是终止程序时提示用户输入数组的大小

我该如何解决这个问题?

提前谢谢你

最佳答案

刚刚注意到您的 while 循环中有 s.charAt(0) != 'N' && s.charAt(0) != 'n' 并且还在循环中递归调用相同的函数环形。

将其更改为 if(s.charAt(0) != 'N' && s.charAt(0) != 'n')

关于java - 输入 no 时进程不会终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13445987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com