0
私は学校のためにシーザー暗号を作ろうとしていますが、何らかの理由で私のコードがうまく動作しません。デコードでもエラーは発生しません。問題はscan.nextLine()の後です。コード化されたメッセージが入力されるように要求した後、コードはシーケンス全体をスキップして停止します。私が何かを入力する前に。Javaコードは、次の.nextLine()以外はありません。スキャナ
import java.util.Scanner;
import java.lang.Math;
import java.io.*;
public class CodeAssignment4 {
public static void main(String[] args) throws IOException
{
Scanner scan= new Scanner (System.in);
System.out.println("Please enter the key to your cipher");
int key = scan.nextInt();
if (key >= 26) {
System.out.println("Key out of range");
return;
}
System.out.println("Please enter your coded message");
String codemessage = scan.nextLine();
int length = codemessage.length();
char[]codemessagearray = codemessage.toCharArray();
char value;
char newkey = (char)key;
String decodedmessage = " ";
int i;
for (i=0; i < length; i++) {
value = codemessagearray[i];
if ((value < 'a') || (value > 'z')) {
System.out.println("Character out of range");
break;
}
value -= 'a'; //send range to zero
value -= newkey; //decrament key
value += 26; //account for negative
value = (char)((int)value%26);
decodedmessage += value + 'a';
}
if (i == length) {
System.out.println(decodedmessage);
}
}
}
私の休憩の1つが問題を引き起こしていると思います。
デバッガでプログラムを実行してみましたか? – Robert