Duvida simples

5 respostas
Vitor_de_Oliveira

Gente eu tenho uma duvida bem ridícula, bom…
Estou fazendo um programa simples em java, que serve para fazer cálculos estatísticos.
A minha duvida é o porque diabos do JAVA nao permitir que eu faça calculos com variaveis nao iniciadas??
(da para ver isso logo no inicio do algoritmo dentro da declaração das variáveis float, eu tento declarar Q com o valor de 1-p, mas nao consigo pois a variavel p nao possui valor inicializado), coisa que funciona perfeitamente em C, a duvida é essa, porque o JAVA nao permite, e como posso fazer para ele permitir.

`package Estatistica;

import java.io.PrintStream;
import java.util.Scanner;

public class Dimensionamento_da_Amostra {

public static void main(String[] args) {
	
	PrintStream so = System.out;
	Scanner entrada = new Scanner(System.in);
	
	float Z,p,q=1-p;\\ AQUI Ó
	int populaçao;
	
	so.println("Informe qual a preciçao desejada: "
			+ "\n--\t90% : 1"
			+ "\n--\t95% : 2"
			+ "\n--\t98% : 3"
			+ "\n--\t99%:  4");
	
	so.print("Opção: ");
	int x = entrada.nextInt();
	
	
			
		while(x!=0){
			
			
	        
			
			if(x==1){
				
				Z = 1.645f;
				so.print("Informe o tamanho da população: ");
				populaçao=entrada.nextInt();
				so.print("Informe o valor de p: ");
				p=entrada.nextFloat();
		        					
			}
			if(x==2){
				Z = 1.96f;
				
				so.print("Informe o tamanho da população: ");
				populaçao=entrada.nextInt();
				
						
			}
			if(x==3){
				Z = 2.33f;
				
				so.print("Informe o tamanho da população: ");
				populaçao=entrada.nextInt();
				
						
			}
			if(x==4){
				Z = 2.575f;
				
				so.print("Informe o tamanho da população: ");
				populaçao=entrada.nextInt();
			
			}
			if(x>4){
				so.println("Opção invalida");
							
			}
			x=entrada.nextInt();
    }
}

}`

5 Respostas

staroski

Variáveis locais não são inicializadas com um valor padrão, somente variáveis de instância e variáveis de classe.
Quando uma variável local não é inicializada e você tenta ler o valor dela, ocorre erro de compilação.

Nebullus

Porquê quando uma variável é declara e você não atribui um valor a ela, a variável passa a armazenar “null”, ou seja, ela não armazena valor algum… Se você tentar subtrai algo por “null”, ocorre um erro…
Isso funciona com Strings também…

staroski

Isso não se aplica à variáveis locais, somente à variáveis de instância e variáveis de classe.

raphaeloneves

Além deste cenário se aplicar somente em variáveis de instância e classe, como dito pelo starosky, isso não se aplica para variáveis do tipo primitivo. O null é setado para objetos não inicializados, somente. Cada variável primitiva tem seu valor default para estado não inicializado, digamos assim, por exemplo:

float tem valor padrão 0.0f.
int tem valor padrão 0
boolean tem valor padrão false

Nebullus

NOSSA ashudhasudasu

Vou ter prova disso na quinta e ainda estou cometendo essas gafes, mil perdões! EU tinha esquecido…

Criado 27 de agosto de 2017
Ultima resposta 28 de ago. de 2017
Respostas 5
Participantes 4