if else if、elseループを出力しようとしています。配列とスキャナーを使用して、割り当てのための非常に基本的な暗号化プログラムを作成します。スキャナを使用すると整数は入力できますが、ループは実行されません。何が間違っているのですか?if else if、elseループを出力しようとしています。アレイとスキャナーを使用します。何が間違っているのですか?
import java.util.Scanner;
public class Question1A2 {
public static void main (String [] args){
Scanner S = new Scanner(System.in);
System.out.println("\t-------------------------");
System.out.println ("\tIO's 4-digit Encrypter");
System.out.println("\t-------------------------");
System.out.print("Please enter the four digit number you would like to encyrpt: ");
int[] arr = {S.nextInt(),S.nextInt(),S.nextInt(),S.nextInt()};
int a = arr[0] %10 +7;
int b = arr[1] %10 +7;
int c = arr[2]%10 +7;
int d = arr [3] %10 +7;
int i = arr.length;
for(;;){
if (arr.length > 9999) {
System.out.println("Sorry, but that is not a four digit number. Program will terminate.");
System.out.println("Thank you for using Zito's 4-digit Encrypter program.");
break;
}
else if (arr.length < 1000) {
System.out.println("Sorry, but that is not a four digit number. Program will terminate.");
System.out.println("Thank you for using Zito's 4-digit Encrypter program.");
break;
}
else {
System.out.print("The encyrpted version of your input is ");
System.out.print(a);
System.out.print(b);
System.out.print(c);
System.out.print(d);
break;
}
}
}
}
なぜループが実行されるべきですか?あなたは何があってもそれを打ち破っているようです。 –
ループ内のすべての場合にbreakステートメントがあります。 break文が何をしているのか知っていますか?そうでない場合は、削除するか検索してください。簡単な答えは、ループしないことは、このコードが行うべきものであることです。また、 'arr'の長さが'> 9999'であるかどうかチェックするのはなぜですか?配列の長さは常に4です。 – nhouser9
'arr.length'はいつ4以外になりますか?私はあなたが間違った桁数の数字を入力したかどうかをチェックしようとしていると仮定していますが、実際にはあなたのコードでは可能ではありません。 – jonhopkins