Olá, Haxel. Se entendi certo, tua dúvida não é sobre a estrutura do loop (ciclo), mas sobre o contexto das variáveis, é isso mesmo?
Se for, é importante lembrar que a variável declarada dentro do loop não existe fora dele (cannot find symbol). O exemplo abaixo mostra esse erro (código não compilável):
public class TesteLoop {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
String abc = "Passo " + i;
}
System.out.println(abc); // cannot find symbol
}
}
Por outro lado, a variável declarada fora do loop continua sendo a mesma depois de passar várias vezes pelo loop. Assim, no exemplo abaixo, a variável soma terminará com o valor 45.
public class TesteLoop {
public static void main(String[] args) {
int soma = 0;
for (int i = 0; i < 10; i++) {
soma += i;
}
System.out.println(soma);
}
}
Bom, se o objetivo é guardar as strings, vamos imaginar que o texto é digitado pelo usuário do programa, no console. No exemplo abaixo, o programa concatena as strings até que o usuário digite “fim”. Repare que, para ler a entrada padrão, estou usando um utilitário chamado Scanner, do pacote java.util. Se não fizesse isso, teria que ler caracter por caracter. Mais sobre isso aqui: http://www.guj.com.br/java/137702-systemin-como-utilizar.
import java.util.*;
public class TesteLoop {
public static void main(String[] args) {
String resultado = "";
String comando;
Scanner scanner = new Scanner(System.in);
do {
comando = scanner.next();
resultado += comando + '\n';
} while (!comando.equals("fim"));
System.out.println(resultado);
}
}
Para manipular melhor o resultado, você pode ainda colocá-lo em uma lista.
import java.util.*;
public class TesteLoop {
public static void main(String[] args) {
List<String> resultado = new ArrayList<String>();
String comando;
Scanner scanner = new Scanner(System.in);
do {
comando = scanner.next();
resultado.add(comando);
} while (!comando.equals("fim"));
System.out.println(resultado);
}
}
Espero ter ajudado!