Preciso entender o que aconteceu nos exercícios

int v0 =3;
int v1 = v0++;
int v2 = ++v1;
v1 += v0;
v2 += --v1;

o resultado será 4,7,11 ? Por que?? alguém me ajuda?

int x, y;
double z;

x = 5;
y = 2;
z = x / y;
System.out.print(z);

Por que o resultado dá 2.0 e não 2.5?

int total = 0;
int c[] = new int[10];
for (int i = 0; i //esse comando estava assim na prova, o que me parece incompleto
Qual será o valor impresso na tela, considerando o array c[] aumentado para 13.

public class Teste {
public static void main(String[] args) {
String nome = “João”;
imprimeNome(“Empty”);
}
public static void imprimeNome(String nome) {
if(!nome.isEmpty()){
System.out.println(“Tudo bem ” + nome + “?”);
} else {
System.out.println(“O nome é ” + nome + “?”);
}
}
}

não consegui entender o por que de alguns resultados, e outros até agora não consigo chegar a uma conclusão. Can I get some help? :frowning:

Você já implemento esses exercícios em uma classe Java? Talvez rodando a classe e debugando você consiga entender…

Legal a sua dúvida, pq nessa primeira questão o conceito é simples mas normalmente não é abrangido nos “cursos” que vemos no youtube ou até mesmo na faculdade. (na minha não me falaram isso)

Na primeira questão a chave é a ordem do sinal de incrementação.

	int v0 =3;
	System.out.println("v0="+v0);
	int v1 = v0++; //atribui o valor de v0 a v1 e APÓS atribuir o valor, incrementa 1 a v0.
	System.out.printf("v0=%d v1=%d%n", v0, v1); 
	int v2 = ++v1;//incrementa 1 em v1 e APÓS incrementar, atribui o valor de v1 a v2.  
	System.out.printf("v2=%d v1=%d%n", v2, v1);
	v1 += v0;//v1 = v1 + v0
	System.out.printf("v1=%d v0=%d%n", v1, v0);
	v2 += --v1;//v2 = v2 + (v1 - 1)
	System.out.printf("v2=%d v1=%d%n", v2, v1);

Na segunda questão, você tem que pensar que a operação entre as variáveis são feitas e depois de concluída é atribuído o valor a variável “z”. A operação entre duas variáveis inteiras, dará um número inteiro.
Experimente colocar:

 double z, y;

ou

double z, x;

Na terceira, não sei dizer, não entendi.

A última, não sei qual a sua dúvida. Se você não está entendendo o resultado, estude sobre operador lógicos e de negação. (coisa simples)

1 curtida

sim eu executei no net beans, mas nao entendi o porque dos resultados

ainda não consigo entender, eu começo a tentar decifrar a lógica do primeiro exercício e mesmo com a resposta, parece que os números começam a se misturar na minha cabeça e formam uma enorme fumaça haha e não consigo entender

principalmente a ultima parte, v2 += --v1, e porque o valor de v0 = 3 se torna quatro, porque o valor v0++ toma o lugar dele?

Você sabe o que significa os “- -” e os “++”?

Quando você faz isso:

i++ // Está incrementando 1 na variável "i", a mesma coisa que: i += 1 ou i = i +1

Quando você faz isso:

int v1 = i++; //você está atribuindo o valor de "i" á variável v1, e após isso incrementando 1 na variável "i".

Quando você faz isso:

int v1 += --i;

É a mesma coisa que fazer isso: v1 = v1 + ( i - 1) . Está somando o valor da variável v1 ao valor de “i”, mas antes de atribuir é feita a decrementação de i, já que o sinal está antes da variável.

É um conceito bem simples, desculpe se não estou conseguindo fazê-lo entender, não sou muito bom em explicar as coisas. Sugiro não avançar para outros estudos enquanto não entender isso, já que vai encontrar esse tipo de código em muito material por ai.

1 curtida