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

[code]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);
	}
}

}[/code]

Não consigo imprimir i e da na mesma linha

[code]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);
	}
}

}[/code]

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.

[code]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);
	}
}

}[/code]
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.