Erro na logica desse aplicativo!(codigo erroneo)

class Program001
{
public static void main(String args[])
{
int num[] = new int[11];

    int x,y,z;
     y = 0;
     z = 1;
    	for(x=1; x==11;x++)
    	   {
    	   	num[x]= z ^ z;
    	   }
    	  System.out.println(num[0]);
    	   System.out.println(num[1]);
    	    System.out.println(num[2]);
    	     System.out.println(num[3]);
    	    System.out.println(num[4]);
    	   System.out.println(num[5]);
    	  System.out.println(num[6]);
    	   System.out.println(num[7]);
    	    System.out.println(num[8]);
    	   System.out.println(num[9]);
    	  
}   

}

Eu fiz este programa para imprimir na tela 10numeros e fazer o comando XOR e mostrar na tela o resultado.
Exemplo :
x = 1;
y = 0;
c = x XOR y;
System.out.println(x);
mas está dando tudo zero.
Alguem sabe onde eu errei?

Cara penso que você errou na seguinte linha:

num[x = z^z;

você iniciou z com um e em nenhum momento o valor de z é altearado, e mesmo que fosse alterado o operador xor retornaria zero, porque o ou exclusivo retorna falso (ou zero) quando os dois valores são iguais.

Pesquise sobre os operadores de comparação para obter maiores informações.
Blz

Tá dando tudo zero pq o seu for tá assim:

 for(x=1; x==11;x++) 

Ou seja, para i começando em 1, variando de 1 em e ENQUANTO ELE FOR 11. O for nunca é executado. E o array é inicializado com tudo zero…

Altere o código para

 for(x=1; x < 11;x++) 

Dessa forma vc vai colocar no array x o valor de z ^ z.

[]'carisio

Por cara n e que vc esta errando n entendi direito mas seguinte.
o OR operador segue a seguinte tabela.

expressão1 expressão2 expressão1 ^ expressão2
false false false
false true true
true false true
true true false

vc esta comparando int e não boolean então abstrai que e int então 1 ^ 1
e igual a falso! acho que deu para sacar

vc esta comparando dois numeros iguais então concerteza vai ser false então num[x] vai continuar o mesmo numero 0 que deful todos elemento int são criados com 0.

se vc quer imprimir 1 vc tem compara Z^Y que são numeros diferentes logo vai ser blz cara saca outro erro basico. Blz e for como o caro carisio falow

e presta atenção o primiiro que vc vai imprimir sempre vai ser zero por que ???

for(x=1; x<1;x++)

vc ta dizendo que seu indice vai começão na posição 1 certo blz…

System.out.println(num[0]);
System.out.println(num[1]);
System.out.println(num[2]);
aqui vc esta mandando imprimir a primeira posicção mas ela n foi inicializada logo ela vai ser deful ela vai ser 0 saca!!!

vc tem que começa com a posição 1 ou mundo o indice para 0 x=0.
System.out.println(num[1]);
System.out.println(num[2]);
.
.
.
.

enentendu qual quer duvida nos estamos aqui…

blz

No meu aplicativo eu gostaria de exibir os dez primeiros numeros de uma
array com o procedimento XOR…
Exemplo.

int x = 1
num[]= new int[10]
z = num[] ^ x;
imprimir o resultado dessa comparação.
só pode ter duas possibilidades 1 ou 0.
então eu gostaria que a array inteira fizesse este procedimento e imprimir na tela. Mas imprime tudi zero, e na minhas contas a tambem 1.
nao sei onde está errado…

Olha o código q vc vai ter q usar:

class XOR
&#123;
	public static void main&#40;String&#91;&#93; a&#41;
	&#123;
		int&#91;&#93; x = new int&#91;10&#93;;
		for &#40;int i = 0; i &lt; 10; i++&#41;
		&#123;
			x&#91;i&#93; = i;
			System.out.println&#40;1 ^ x&#91;i&#93;&#41;;
		&#125;
	&#125;
	
&#125;

A saída é:

1
0
3
2
5
4
7
6
9
8

Agora vamos analisar o pq dessa saida:

0 ^ 1 = 1 -> 0000 ^ 0001 = 0001 = 1
1 ^ 1 = 0 -> 0001 ^ 0001 = 0000 = 0
2 ^ 1 = 3 -> 0010 ^ 0001 = 0011 = 3
3 ^ 1 = 2 -> 0011 ^ 0001 = 0010 = 2

E por aí vai.

Tem certeza q vc sabe o q é ou exclusivo? Não tem q ser ou 0 ou 1 …

O seu programa tá imprimindo tudo zero pelo motivo que falei no post anterior, o seu for não tá executando pq a condição para ele continuar é == 11, e tinha que ser < 11.

[]'s
carisio

SCJP 1.4