2014-09-29 2 views
-2

Проблема в следующем: Учитывая строку, верните количество раз «e» в строке минус количество раз «a» в строке. Игнорируйте случай букв.Можно ли использовать цикл while вместо цикла for?

Мне было интересно, если вы можете использовать цикл while вместо цикла for для решения этой проблемы. Мне также было интересно, будут ли использоваться только инструкции if-else. Если это возможно, может кто-нибудь показать мне, как это сделать?

public int eLessA(String str){ 
    int E = 0, A = 0; 
    for (int i = 0; i < str.length(); i++){ 
    if (str.substring(i, i+1).equalsIgnoreCase("e")){ 
     E++; 
    } 
    if (str.substring(i, i+1).equalsIgnoreCase("a")){ 
     A++; 
    } 
    } 
    return E - A; 
} 
+0

в соответствии с синтаксисом вы можете использовать циклы, если они есть и т. Д. Внутри цикла. –

+0

Вы всегда можете заменить цикл for на цикл while и связанную переменную счетчика. –

+0

В общем, безопаснее использовать цикл for-loop всякий раз, когда задействовано определенное количество циклов, так как в этом случае используется строка фиксированной длины. Это минимизирует возможность ввода бесконечного цикла. – Ian

ответ

1

Конечно.

Каждый раз, когда у вас есть forloop:

for(int i = 0; i < str.length(); i++) { 
    //do something 
} 

Вы можете сделать

int i = 0; 
stringLength = str.length(); 
while(i < stringLength) { 
    //do something 
    i++; 
} 
0

Да, вы можете использовать время цикла вместо для цикла. Единственная разница при использовании цикла while заключается в том, что вы увеличиваете число циклов.

int i = 0; 
while(i < str.length()) 
{ 
    // Do what you want here 

    i++; 
} 
Смежные вопросы