Для учебной задачи в школе мне нужно закодировать простой шифр Цезаря, где пользователь может выбрать свой собственный сдвиг (+1, +2 и т. Д.). Например, если пользователь выбирает +3 (a -> d и т. Д.) И вводит в сообщение, содержащее буквы x, y или z, эти буквы должны быть округлены до начала алфавита, так что x становится a, y становится b, z становится c. Для этого я использую значения ASCII.У меня возникли проблемы с созданием цикла для шифрования Цезаря
Еще одна важная проблема заключается в том, что я использовал довольно много операторов if-else для каждого переключателя, чтобы изменить сдвиг Цезаря. Если возможно, есть все равно, чтобы убрать это и сделать его более эффективным. (Я только что включил три примера для каждой кнопки шифрования и дешифрования для примеров.)
Я включил свой текущий код ниже.
Public Class
Dim FnlValue As String = ""
Dim FnlChar As Char
Dim VariableChr As Single
Dim caesar As Integer
Private Sub encrypt_btn_Click(sender As Object, e As EventArgs) Handles encrypt_btn.Click
FnlValue = ""
For VariableChrNo = 0 To (input.Text.Length - 1)
VariableChr = Asc(input.Text.Chars(VariableChrNo))
FnlChar = Chr(VariableChr + caesar)
FnlValue = FnlValue + FnlChar
Next
output.Text = FnlValue
If rad_2.Checked Then
caesar = 2
Else If
If rad_3.Checked Then
caesar = 3
Else If
If rad_4.Checked Then
caesar = 4
Else If
End Sub
Private Sub decrypt_btn_Click(sender As Object, e As EventArgs) Handles decrypt_btn.Click
FnlValue = ""
For VariableChrNo = 0 To (output.Text.Length - 1)
VariableChr = Asc(output.Text.Chars(VariableChrNo))
FnlChar = Chr(VariableChr - caesar)
FnlValue = FnlValue + FnlChar
Next
input.Text = FnlValue
End Sub
If rad_2.Checked Then
caesar = -2
Else If
If rad_3.Checked Then
caesar = -3
Else If
If rad_4.Checked Then
caesar = -4
Else If
End Class
Пока неясно, что вы просите. У вас проблема с алгоритмом? Если да, в чем проблема? Или вам просто нужны указатели на стиль кодирования? Я приветствую ваше желание научиться кодировать более идиоматические .NET, но это, вероятно, будет считаться не по теме. Форматирование кода помогает нам прочитать ваш вопрос, пожалуйста, используйте его. Кроме того, ваш код не компилируется - операторы if внизу не находятся внутри метода. Вот несколько советов по [как задать хорошие вопросы] (https://stackoverflow.com/help/how-to-ask) в StackOverflow. –
Один из способов устранения операторов RadioButton If, чтобы сами кнопки сами устанавливали переменную 'caesar'. Используйте свои события CheckChanged. –