Caesar Cipher:我想转移用户输入(明文)" n"次数

时间:2015-08-30 12:09:04

标签: java encryption caesar-cipher

/**
 *
 * @author hamza
 */
public class Caesar_Chipher {


    // This is where I call my functions 
    public static void main(String[] args) {     
        userChoice();
    }



    //User chooses 1 or 2 to encrypt or decrypt
    public static void userChoice() {
        Scanner input = new Scanner(System.in); 
        System.out.print("Enter your choice, 1 = encrypt, 2 = decrypt: ");
        int userchoice; 
        userchoice = input.nextInt();
        if (userchoice == 1) {
            offsetNumber();
            message();
            System.out.println(plaintext + shift);
        }

        if (userchoice == 2) {
            offsetNumber();
            message();
            System.out.println(plaintext + shift);
        }

        else {
            userChoice();
        }
    }

    public static void offsetNumber() {
        Scanner offset = new Scanner(System.in);
        System.out.print("Enter your shift number: ");
        int shift;
        shift = offset.nextInt();
        if (shift < 27) {
            message();
        }
    }

    public static void message() {
        Scanner Message = new Scanner(System.in);
        System.out.print("Enter your message: ");
        String plaintext;
        plaintext = Message.next();
    }        
}

我的代码出了什么问题?当有人加密我希望明文被移位n时,当有人解密时,我希望明文被-n移位。

1 个答案:

答案 0 :(得分:0)

这还不是一个完整的答案,但评论不支持此代码示例的多行。

return关键字将变量返回给方法的调用者。因此,在以下示例中,returnMeAnInt()将在执行代码时替换为4。但是,它还有很多(特别是实例和局部变量),因此堆栈溢出答案无法教你java的基础知识。去寻找教程 - 甚至更好:一本好书。

void main(String[] args) {
    int i = returnMeAnInt();
    System.out.println(i); // will print 4
}

int returnMeAnInt() {
    return 4;
}