2015-01-05 8 views
-3
package learning; 
import java.util.* ; 

public class Learning { 

    public static void main(String[] args) { 
     String normal , cipher; 
     String shiftstr; 
     int shiftint, s; 

     System.out.println("Welcome To Ceasar Shift Creator"); 
     Scanner in = new Scanner(System.in); 
     normal = in.nextLine(); 
     char[] proc = normal.toCharArray(); 
     int length; 
     length = normal.length(); 
     System.out.println("Ok now tell me how many times you want it to be shifted "); 
     shiftstr = in.nextLine(); 
     shiftint = Integer.parseInt(shiftstr); 

     s = 0; 
     for(int i =0; i < length ; i++){ 
      while(s < shiftint){ 
       proc[i]++; 
       s++; 
      } 
      System.out.print(proc[i]); 
     } 
    } 

Я хотел, чтобы все слово было сдвинуто вперед так же, как и нет. как упоминает пользователь. Но только первая буква сдвинута. Я знаю, что я сделал это неправильно, но все же помогу ...Для петли не работает

ответ

1

Внутренний цикл while вводится один раз, когда i равно 0. Вот почему изменяется только proc [0].

Вам не нужен внутренний цикл:

for(int i =0; i < length ; i++){ 
     proc[i]+=shiftint; 
     System.out.print(proc[i]); 
    } 
+0

любые решения ??? –

+0

@TanmayJain смотреть редактировать – Eran

+0

Thank You Eran !! –

1

сек необходимость установить обратно в 0 в для цикла.

for (int i = 0; i < length; i++) { 
     while (s < shiftint) { 
      proc[i]++; 
      s++; 
     } 
     System.out.print(proc[i]); 
     s=0; 
    } 
Смежные вопросы