【发布时间】:2018-11-14 20:56:23
【问题描述】:
我正在创建一个将 5 位邮政编码转换为框架条的应用程序。奇怪的是,输入的第一个数字没有正确地进行转换。代码如下:
import java.util.*;
import java.lang.*;
import java.io.*;
class Zip{
public static String checkDigit(String bar)
{
Scanner s = new Scanner(System.in);
int [] input;
input = new int [4];
for(int p = 0; p < 4; p++)
{
input[p] = s.nextInt();
if (input[p] == 0)
{
bar = bar + "||:::";
}
if (input[p] == 1)
{
bar = bar + ":::||";
}
}
System.out.println();
return bar;
}
public static void main (String[] args) {
Scanner s = new Scanner(System.in);
System.out.println(checkDigit(s.nextLine()));
}
}
例如在数组中输入1,0,0,0,0时,输出为
“1||:::||:::||:::||:::”
在数组中输入0、1、1、1、1时,输出为
"0:::||:::||:::||:::||"
它不转换 pos [0] 的第一个数字,而是直接打印数字。这是为什么呢?
【问题讨论】:
-
因为在使用
bar = bar + ...时会保留bar的初始值
标签: java arrays for-loop zipcode