2015-02-11 3 views
-1

Я пытаюсь создать цикл, чтобы эта программа продолжалась до тех пор, пока пользователь не попросит «Выход», но я знаю, что мне нужно использовать цикл do-while, но по какой-то причине он не работает, как я могу исправить это. Я хочу, чтобы пользователь нажал, как E (Выход), и программа остановится.Шифрование и дешифрование

import java.util.Scanner; 
import java.security.InvalidKeyException; 
import java.security.NoSuchAlgorithmException; 
import javax.crypto.BadPaddingException; 
import javax.crypto.Cipher; 
import javax.crypto.IllegalBlockSizeException; 
import javax.crypto.KeyGenerator; 
import javax.crypto.NoSuchPaddingException; 
import javax.crypto.SecretKey; 
import javax.crypto.SecretKey; 
/** 

*/ 
public class ENCRY 
{ 
    public static void main(String[] args) 
    { 

     try{ 
      do{ 
       Scanner input = new Scanner(System.in); 
       System.out.println("Please select an Option"); 
       System.out.println("Encrypt the Sentence"); 
       int File =input.nextInt(); 
       System.out.println("--------------------"); 
       System.out.print("Enter the sentence:"); 
       String s = input.next(); 

       KeyGenerator keygenerator = KeyGenerator.getInstance("DES"); 
       SecretKey myDesKey = keygenerator.generateKey(); 
       Cipher desCipher; 
       desCipher = Cipher.getInstance("DES"); 
       desCipher.init(Cipher.ENCRYPT_MODE, myDesKey); 
       byte[] text = s.getBytes(); 
       System.out.println("" + new String(text)); 


       byte[] textEncrypted = desCipher.doFinal(text); 
       System.out.println("sentence Encryted : " + textEncrypted); 
       desCipher.init(Cipher.DECRYPT_MODE, myDesKey); 

       byte[] textDecrypted = desCipher.doFinal(textEncrypted); 
       System.out.println("sentence Decryted : " + new String(textDecrypted)); 



while() 



     }catch(NoSuchAlgorithmException S) 
     { 
      S.printStackTrace(); 
     }catch(NoSuchPaddingException S) 
     { 
      S.printStackTrace(); 
     }catch(InvalidKeyException S) 
     { 
      S.printStackTrace(); 
     }catch(IllegalBlockSizeException S) 
     { 
      S.printStackTrace(); 
     }catch(BadPaddingException S) 
     { 
      S.printStackTrace(); 
     } 

    } 
} 
+0

Вы не написали цикл do/while в любом месте вашего кода. Кроме того, теги, которые вы использовали по вашему вопросу, были совершенно неактуальны - пожалуйста, выберите только теги, связанные с вашим вопросом. – duskwuff

ответ

0

Что вы могли бы сделать что-то вроде следующего

do{ 
//code you want to run 
}while(!stop); 

Где остановка изменяется истина на ключевом событии (например, пользователь, нажав на «е» ключ) или, возможно, JButton.

+0

Когда я делаю это и компилирую его, он не может найти stop-variable stop. – David

+0

Вы объявили значение типа boolean с именем stop в начале вашей программы и установили его в false? – CreedVI

+0

Спасибо, я исправил это, но какой хороший код выхода из Java хорош, поэтому я могу попросить пользователя нажать E и закрыть программу. – David