Alguem me consegue ajudar nao estou a conseguir encerrar o ciclo antes de chegar á possicao 200 do vetor

// interface simples para o utilizador escrever a matriz
import java.util.Scanner;

public class lapr1Interativo {
public static void main(String[] args) {
Scanner ler = new Scanner(System.in);

    int n = 200; // tamanho do vetor
    int v[] = new int[n]; // declaração do vetor "v"
    int i = 0; // índice ou posição
    boolean fim = false;

// Entrada de Dados
while (fim == false) {
System.out.printf(“Informe %2do. valor de %d: “, (i + 1), n);
v[i] = ler.nextInt();
if (fim) {
System.out.printf(””);
}
}
}
}

import java.util.Scanner;

public class lapr1Interativo {
     public static void main(String[] args) {
           Scanner ler = new Scanner(System.in);

           int n = 200; // tamanho do vetor
           int v[] = new int[n]; // declaração do vetor "v"
           int i = 0; // índice ou posição
           boolean fim = false;

           // Entrada de Dados
           while (i < v.length) {
           System.out.printf(“Informe %2do. valor de %d: “, (i++), n);
           v[i] = ler.nextInt();
           if (fim) {
           System.out.printf(””);
       }
    }
}

É isso certo?

Nao esta a funcionar , quando digito a palavra fim da erro no programa.

import java.util.Scanner;

public class lapr1Interativo {
public static void main(String[] args) {
Scanner ler = new Scanner(System.in);

    int n = 200; // tamanho do vetor
    int v[] = new int[n]; // declaração do vetor "v"
    int i = 0; // índice ou posição
    String valores = ler.next();

    // Entrada de Dados
    while (!valores.equals ("fim") && i<v.length) {
        System.out.printf("Digite fim para sair ou Informe X%2do. valor de %d: ", (i++), n );
        v[i] = Integer.parseInt(valores);
        valores=ler.next();
    }
}

}

mesmo assim continua a iniciar mal

Para ler do teclado deve usar-se somente o método nextLine(). Com next()ou nextInt() podes ter comportamentos inesperados.

E, quando criares um tópico, aguarda que alguém te responda. Não espalhes a mesma questão em 20 outros tópicos não relacionados…

Se a ideia é ler algo que pode ser um número ou o texto “fim”, então você deve ler apenas uma única vez, verificar se foi digitado “fim”, e se não for o caso, aí você tenta converter em número.

Seria algo assim:

Scanner ler = new Scanner(System.in);
int v[] = new int[200];
for (int i = 0; i < v.length; i++) {
    System.out.printf("Digite fim para sair ou informe o %do. valor de %d: ", i, v.length);
    String valor = ler.nextLine(); // lê o que foi digitado
    if ("fim".equals(valor)) { // se for "fim"
        break; // sai do for
    }
    // senão, tenta converter para número
    v[i] = Integer.parseInt(valor);
}

Usei break, que interrompe o loop, assim não precisa ficar testando no while, e também não precisa ler o dado antes do loop (faça isso somente uma vez, dentro do for, não precisa se repetir).

Não sei se era isso mesmo que você queria…

import java.util.Scanner;

public class lapr1Interativo {
static final int VETOR_MAXIMO = 200; // tamanho do vetor

public static void main(String[] args) {
    Scanner ler = new Scanner(System.in);

    int[] vetor = new int[VETOR_MAXIMO]; // declaração do vetor "v"
    static int countVetor = 0; // índice ou posição

    System.out.printf("Digite fim para sair ou Informe X%d0: ", countVetor);
    String valores = input.next();

    // Entrada de Dados
    while (!valores.equals ("fim") && countVetor < vetor.length) {
        vetor[countVetor] = Integer.parseInt(valores);
        countVetor++;
        System.out.printf("%nDigite fim para sair ou Informe X%d0: ", countVetor);
        valores=input.next();
    }
}

}

eu tenho isto so que agora tenho que criar um array c dimensao contvetor e tenho que pedir a primeira linha ao utilizador e a diagonal nao principal do array

import java.util.Scanner;

public class lapr1Interativo {
static final int VETOR_MAXIMO = 200; // tamanho do vetor

public static void main(String[] args) {
    Scanner ler = new Scanner(System.in);

    int[] vetor = new int[VETOR_MAXIMO]; // declaração do vetor "v"
    static int countVetor = 0; // índice ou posição

    System.out.printf("Digite fim para sair ou Informe X%d0: ", countVetor);
    String valores = input.next();

    // Entrada de Dados
    while (!valores.equals ("fim") && countVetor < vetor.length) {
        vetor[countVetor] = Integer.parseInt(valores);
        countVetor++;
        System.out.printf("%nDigite fim para sair ou Informe X%d0: ", countVetor);
        valores=input.next();
    }
}

}

eu tenho isto so que agora tenho que criar um array c dimensao contvetor e tenho que pedir a primeira linha ao utilizador e a diagonal nao principal do array

Indico vc estudar Collections, ex com ArrayList:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ExColect {

	public static void main(String[] args) {
		Scanner leitor = new Scanner(System.in);
		List<String> v = new ArrayList<>();
		boolean fim = false;
		
		for(int i = 0; i<200; i++) {
			
			System.out.println("Digite um valor:");
			v.add(leitor.nextLine());
		}
		
		System.out.println(v);	
	}

}

Você poderia adicionar quantas posições for necessário sem se preocupar com o tamanho do vetor.

Nao é isto que eu pretendo fazer

Entao, nao tinha lido a sua resposta de cima, ja conseguiu fazer?? é uma ideia de matriz? se for é melhor declarar vetor como matriz, ex: vetor[5][5] matriz quadrada de 25 posições. me tire essas duvidas e informe o objetivo completo que consigo montar algum modelo baseado nisso.