Porque não consigo imprimir i e da na mesma linha oque esta errado?

2 respostas
faicoxim
class dado
{
	public static void main (String args[])
	{
	
		for (int i=0; i<=6; i++)
		{
			for (int a=0; a<=6; a++)
			{
				int da = (int)(1+Math.random()*9);
				
			}
			System.out.println(i + "=" + da);
		}
	}
}

Não consigo imprimir i e da na mesma linha

2 Respostas

dionat4n
class dado
{
	public static void main (String args[])
	{
	
		for (int i=0; i<=6; i++)
		{
			int da = -1;     //declarar da aqui para ser visivel ao bloco do for externo e nao ao interno
			for (int a=0; a<=6; a++)
			{
				da = (int)(1+Math.random()*9);
				
			}
			System.out.println(i + "=" + da);
		}
	}
}

da está sendo criado no for interno e tentando ser impresso no for externo, mas da pertence apenas ao bloco de código interno (segundo for).

Imprimir i vai dar certo pois está no bloco de código onde ele está declarado (no for externo).

Você deve declarar da entre os dois for's, assim terá visibilidade do da no for externo.

dionat4n
class dado
{
	public static void main (String args[])
	{
		int da = -1;
		for (int i=0; i<=6; i++)
		{
			for (a=0; a<=6; a++)
			{
				da = (int)(1+Math.random()*9);
				
			}
			System.out.println(i + "=" + da);
		}
	}
}
Um tipo de otimização que você pode fazer é declarar da fora do for mais externo (no bloco do método main). Assim "da" não será criado a cada interação do loop.

Bem como pode fazer isso com as variáveis "a" que é criada a cada interação do loop mais externo, ficando como mostrado acima.

Criado 12 de janeiro de 2009
Ultima resposta 12 de jan. de 2009
Respostas 2
Participantes 2