내 부울 valid
변수는 항상 false를 반환하여 else 오류 메시지를 표시합니다. 어떤 아이디어? 바코드를 우편 번호로 변환하려고하는데 데이터 유효성 검사 (바코드에 :
및 |
만 사용되고 32 자 길이인지 확인해야합니다.) 첫 번째와 마지막으로 |
을 무시하고 처음 5 개의 바코드 만 계산하십시오 (실제 문자열/바코드의 1-25 행). 그런 다음 1-25에있는 바코드를 zipcode/digits로 변환합니다.Java 코드가 항상 오류 메시지를 반환합니다 (유효하지 않음은 true와 같음)
public class JordanReynoldsHW7
{
public static void main(String[] args)
{
String barCode = "|||:::||:::||:::||:::||:::||:::|";
boolean valid;
valid = true;
if (barCode.length() != 32)
valid = false;
for (int i = 0; i < barCode.length(); i++)
if (barCode.charAt(i) != ':' || barCode.charAt(i) != '|')
valid = false;
if (valid == true) {
String zipCode = "";
for (int i = 1; i <= 25; i = i + 5)
zipCode += getNumber(barCode.substring(i, i + 5));
System.out.println(zipCode);
} else
System.out.print("error message");
}
public static int getNumber(String s)
{
switch (s) {
case "||:::":
return 0;
case ":::||":
return 2;
case "::|:|":
return 3;
case ":|::|":
return 4;
case ":|:|:":
return 5;
case ":||::":
return 6;
case "|:::|":
return 7;
case "|::|:":
return 8;
default:
return 9;
}
}
}
충고는 항상 'if'문에 대괄호를 추가하십시오. 영향을받는 변수 등의 범위를보다 쉽게 읽고 쉽게 읽을 수 있습니다. – ochi