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!