Dúvida sobre condiçoes booleanas[Resolvido]

3 respostas
coast

Pode ser ignorancia minha, nao sei, acabei de sair de algoritmos e to começando java, e no java eu fiquei com uma dúvida, quando eu uso o 'if' ele pede que a condição seja booleana, isso eu sei, mas como que eu vou criar uma variavel booleana? Ainda nao aprendi sobre isso no curso e to aqui procurando.

o erro que tá aparecendo é esse

TodasCalc2.java:22: incompatible types
found	 : int
requeired: boolean
	if(num){
	   ^

o código da calculadora que eu fiz tá ae:

import java.util.Scanner;

public class TodasCalc2{

    public static void main (String[] args){

	Scanner keyboard0 = new Scanner (System.in);

    int soma=1;
    int div=2;
    int mult=3;
    int sub=4;
    int num=1;

    System.out.println("Escolha um NUMERO:");
    System.out.println("1) Soma");
    System.out.println("2) Divisao");
    System.out.println("3) Multiplicacao");
    System.out.println("4) Subtracao");


    if(num){
    	soma = keyboard0.nextInt();
	   	if (soma == 1){
		    	Scanner keyboard1 = new Scanner (System.in);
				int num1;
				int num2;
				System.out.println("Escolha um numero, ");
				num1 = keyboard1.nextInt();
				System.out.println("Escolha outro numero");
				num2 = keyboard1.nextInt();

				System.out.print (num1 + " + " + num2 + " = ");
		        System.out.println (num1 + num2+"\n");
		        System.out.println ("Digite uma letra para finalizar\n");
		}


		div = keyboard0.nextInt();
		if (div == 2){
				Scanner keyboard2 = new Scanner (System.in);
				int num1;
				int num2;
				System.out.println("Escolha um numero a ser dividido");
				num1 = keyboard2.nextInt();
				System.out.println("Escolha o divisor");
				num2 = keyboard2.nextInt();

		        System.out.println(num1 + " / " + num2 + " = "+num1/num2+"\n");
		        System.out.println ("Digite uma letra para finalizar\n");
		}


		mult = keyboard0.nextInt();
		if (mult == 3){
				Scanner keyboard3 = new Scanner (System.in);
				int num1;
				System.out.println("Escolha um numero:");
				num1 = keyboard3.nextInt();

					for(int num2=1;num2<=10;num2++){
				    	System.out.println(num1 + " x " + num2 + " = "+num1*num2);
				    }
				    System.out.println ("\nDigite uma letra para finalizar\n");
		}


		sub = keyboard0.nextInt();
		if (sub == 4){
				Scanner keyboard4 = new Scanner (System.in);
				int num1;
				int num2;
				System.out.println("Escolha um numero, ");
				num1 = keyboard4.nextInt();
				System.out.println("Escolha outro numero");
				num2 = keyboard4.nextInt();

				System.out.print (num1 +" - "+ num2 +" = ");
		    	System.out.println (num1 - num2+"\n");
		    	System.out.println ("Digite uma letra para finalizar\n");
		}

	}
    }
}

se alguem puder me ajudar ;D

3 Respostas

francislon

Então coast, não é necessário criar uma varável booleana, mas uma expressão que tenha um valor verdadeiro ou falso, no seu caso quando vc escreve:

if(num){

O if tenta avaliar se esta expressão é verdadeira ou falsa, diferentemente da linguagem C que aceita inteiros como expressão booleana, java não aceita este tipo de expressão. Quando vc coloca um int sem nenhuma comparação no if sempre vai dar erro. O certo é fazer uma comparação que retorne true ou false.

peerless

Declara uma boolean que receba o valor

boolean cond = (num >; 0 ? true : false );

if (cond)

francislon

Para resolver o problema basta tirar o primeiro if, aquele que tem o “if(num)”.

Não há necessidade dele no contexto do seu programa :slight_smile: .

Criado 13 de março de 2007
Ultima resposta 13 de mar. de 2007
Respostas 3
Participantes 3