2014-09-09 4 views
-1

Я пытаюсь сравнить третье число с последним числом и четвертое число с пятым номером. Оператор if не работает, любая помощь будет оценена.Если утверждение не работает: любые идеи?

import java.util.*; 

class Problem2{ 

     public static void main (String[] args){ 

     Scanner s = new Scanner(System.in); 
     System.out.println("Enter a number between 100000 and 999996: "); 
     int m = s.nextInt(); 
     if(m < 100000 || m > 999996){ 
      System.out.println("Out of range!"); 
     } 
     else{ 
     String j = Integer.toString(m); 
     for(int i=2;i<6,i++){ 
      System.out.println(j.charAt(i)); 
      if(j.charAt(i) == (j.charAt(i)+3)&& (j.charAt(i)+1) == (j.charAt(i)+2)){ 
       System.out.println("Works!"); 
      } 


     } 

     } 
    } 

} 
+0

Определение 'не работает'. – EJP

+0

Кроме того, в каком выражении –

+0

у вас есть проблемы с синтаксисом, и я даже изменяю то, что ответили вам, у вас все еще есть проблемы? –

ответ

3

Вы приращение значения, а не индекса характера.

Изменить это:

if (j.charAt(i) == (j.charAt(i)+3)&& (j.charAt(i)+1) == (j.charAt(i)+2)) 

Для этого:

if (j.charAt(i) == j.charAt(i+3) && j.charAt(i+1) == j.charAt(i+2)) 
// increment indexes  --^    --^    --^ 
3

Переместить дополнения внутри вызовов charAt().

if(j.charAt(i) == (j.charAt(i+3))&& (j.charAt(i+1)) == (j.charAt(i+2))) 
Смежные вопросы