Ich versuche, eine Caesar-Chiffre für die Schule zu machen, aber aus irgendeinem Grund funktioniert mein Code nicht. Es gibt auch keinen Fehler beim Decodieren. Das Problem ist nach der scan.nextLine(); nachdem er nach einer codierten Nachricht gefragt hat, springt der Code einfach über die gesamte Sequenz und stoppt. Bevor ich etwas eingeben kann.Java-Code wird nicht verwendet, außer nextLine(); Scanner
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);
}
}
}
Ich denke, einer meiner Pausen verursacht ein Problem.
haben Sie versucht, in einem Debugger durch Ihr Programm treten? – Robert