Java 在回答“是”时重复该方法
有更多的信用卡号码吗?(n代表否):当然 有人能建议一种执行边做边做循环的方法吗? 先谢谢你 我已经编辑了代码,现在由于某种原因它正在执行重复部分,当我输入no时,该过程不会终止 比如: 请输入发卡机构ID:321 请输入帐号:654654654 输入的完整数字: 3213213216546546549Java 在回答“是”时重复该方法,java,arrays,object,repeat,do-while,Java,Arrays,Object,Repeat,Do While,有更多的信用卡号码吗?(n代表否):当然 有人能建议一种执行边做边做循环的方法吗? 先谢谢你 我已经编辑了代码,现在由于某种原因它正在执行重复部分,当我输入no时,该过程不会终止 比如: 请输入发卡机构ID:321 请输入帐号:654654654 输入的完整数字: 3213213216546546549 请输入aray的大小:7 请输入发卡机构ID:789789 信用卡#0: 7897898568529257 信用卡#1: 789789170678958 信用卡#2: 7897890057810
请输入aray的大小:7 请输入发卡机构ID:789789 信用卡#0: 7897898568529257
信用卡#1: 789789170678958
信用卡#2: 7897890057810934
信用卡#3: 7897894922446098
信用卡#4: 7897894138284895
信用卡#5: 7897896592335006
信用卡#6: 7897898184425880
Enter a credit card issuer number: 321321
Enter an account number: 654654654
The complete number from your input:
3213 2165 4654 6549
Enter the number of elements in the array: 7
Enter an issuer ID# (6 digits): 789789
Credit Card # 0:
7897 8931 4062 1219
Credit Card # 1:
7897 8920 2125 3522
Credit Card # 2:
7897 8971 9793 0944
Credit Card # 3:
7897 8979 3216 3090
Credit Card # 4:
7897 8995 0461 8493
Credit Card # 5:
7897 8948 8037 5909
Credit Card # 6:
7897 8966 0251 9953
Get more credit card numbers? (n for no): ok
Enter the number of elements in the array: 3
Enter an issuer ID# (6 digits): 345345
Credit Card # 0:
3453 4576 6705 1666
Credit Card # 1:
3453 4548 1163 5684
Credit Card # 2:
3453 4563 8807 0419
正如您所看到的,当我输入no时,它会不断重复相同的句子,我希望它从输入数组大小的句子开始重复
如何执行此操作?您应该将
cred1
定义为一个全局静态方法,不在main
例程中
或者将
cred1
作为参数传递给getInputArray(…)
,后者将它们进一步传递给TryAnother(…)
,您应该将cred1
定义为一个全局静态方法,在main
例程之外
或者将
cred1
作为参数传递给getInputArray(…)
,然后将它们进一步传递给TryAnother(…)
,我不确定您希望这个程序的输出是什么。由于您询问了一个编译错误,我编辑了您的代码并删除了两个编译错误
TryAnother()
中未定义cred1
。因此,必须将其作为参数传递。像这样TryAnother(信用卡号[]cred1)
TryAnother()。这将给您一个无法访问的语句编译错误,因为在方法中执行return
语句后,将不再执行。因此,您必须将return true
语句放在do while循环之后
import java.util.Scanner;
公共类程序4{
静态扫描仪=新扫描仪(System.in)
公共静态void main(字符串[]args)
{信用卡号[]cred1;
CreditCardNumber cred2=getInput();
显示(“输入的完整数字:”,cred2);
cred1=getInputArray();
显示阵列(cred1);
TryAnother(cred1);//将变量cred1作为参数传递
}
公共静态CreditCardNumber getInput(){
字符串ID;
字符串accNum;
CreditCardNumber tempCred;
System.out.printf(“请输入发卡机构ID:”);
ID=scanner.next();
System.out.printf(“请输入账号:”);
accNum=scanner.next();
tempCred=新信用卡号(ID,accNum);
返回tempCred;
}
公共静态无效显示(字符串ch,CreditCardNumber cred2)
{
系统输出println(ch);
System.out.println(cred2.toString().replaceAll(“.{4}”,“$0”);
}
公共静态CreditCardNumber[]getInputArray()
{
CreditCardNumber[]临时数组;
字符串tempID;
整数大小;
System.out.printf(“请输入aray的大小:”);
大小=scanner.nextInt();
如果(尺寸<1)
{
尺寸=1;
}
tempArray=新信用卡号[大小];
System.out.printf(“请输入发卡机构ID:”);
tempID=scanner.next();
for(int i=0;i
公共静态void显示数组(CreditCardNumber[]cred1)
{
对于(int i=0;i
公共静态布尔TryAnother(CreditCardNumber[]cred1)//将cred1作为参数传递
{
字符串s;
System.out.printf(“获取更多信用卡号码?(n表示否):”;
s=scanner.next();
如果(s.charAt(0)!=N'| s.charAt(0)!=N')
{
做
{
cred1=getInputArray();
}而(s.charAt(0)!=“N”| s.charAt(0)!=“N”);
}
return false;//将return语句放在这里
}
}
//虚拟类
类别信用卡号{
字符串ID;
字符串accNum;
公共信用卡号码(){
}
公共信用卡号(字符串ID、字符串accNum){
this.ID=ID;
this.accNum=accNum;
}
public void created(字符串tempID){
ID=tempID;
}
}
我不确定您希望这个程序的输出是什么。由于您询问了一个编译错误,我编辑了您的代码并删除了两个编译错误
TryAnother()
中未定义cred1
。因此,必须将其作为参数传递。像这样TryAnother(信用卡号[]cred1)
TryAnother()。这将给您一个无法访问的语句编译错误,因为在方法中执行return
语句后,将不再执行。因此,您必须将return true
语句放在do while循环之后
import java.util.Scanner;
公共类程序4{
静态扫描仪=新扫描仪(System.in)
公共静态void main(字符串[]args)
{信用卡号[]cred1;
CreditCardNumber cred2=getInput();
显示(“输入的完整数字:”,cred2);
cred1=getInputArray();
显示阵列(cred1);
TryAnother(cred1);//将变量cred1作为参数传递
}
公共静态信用卡
Enter a credit card issuer number: 321321
Enter an account number: 654654654
The complete number from your input:
3213 2165 4654 6549
Enter the number of elements in the array: 7
Enter an issuer ID# (6 digits): 789789
Credit Card # 0:
7897 8931 4062 1219
Credit Card # 1:
7897 8920 2125 3522
Credit Card # 2:
7897 8971 9793 0944
Credit Card # 3:
7897 8979 3216 3090
Credit Card # 4:
7897 8995 0461 8493
Credit Card # 5:
7897 8948 8037 5909
Credit Card # 6:
7897 8966 0251 9953
Get more credit card numbers? (n for no): ok
Enter the number of elements in the array: 3
Enter an issuer ID# (6 digits): 345345
Credit Card # 0:
3453 4576 6705 1666
Credit Card # 1:
3453 4548 1163 5684
Credit Card # 2:
3453 4563 8807 0419
Get more credit card numbers? (n for no):n
Get more credit card numbers? (n for no):n
Get more credit card numbers? (n for no):no
Get more credit card numbers? (n for no):
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); // pass variable cred1 as a parameter
}
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) // pass cred1 as a parameter
{
String s;
System.out.printf("Get more credit card numbers? (n for no):");
s = scanner.next();
if(s.charAt(0) != 'N' || s.charAt(0) != 'n')
{
do
{
cred1 = getInputArray();
}while(s.charAt(0) != 'N' || s.charAt(0) != 'n');
}
return false; // put the return statement here
}
}
// A dummy class
class CreditCardNumber{
String ID;
String accNum;
public CreditCardNumber(){
}
public CreditCardNumber(String ID,String accNum){
this.ID = ID;
this.accNum = accNum;
}
public void CreateCred(String tempID){
ID = tempID;
}
}