How to exclude the answer from an if if the input applies to another if?

Asked

Viewed 25 times

1

For example, I was studying and I came across the following problem: If I do a little program to tell me if a number is multiple of 2 and 3, they will have numbers that will be multiple of both. The code I made is this::

           double n1,n2,n3,n4;

    Console.WriteLine("Digite um número e eu descobrirei se ele é multiplo de dois ou de três.\nDigite um número:");
    n1=Double.Parse(Console.ReadLine());
    
    Console.WriteLine("Um número só seria fácil demais.\nDigite outro:");
    n2=Double.Parse(Console.ReadLine());

    Console.WriteLine("Vamos deixar isso um pouco mais difícil.\nPróximo número:");
    n3=Double.Parse(Console.ReadLine());

    Console.WriteLine("Ok, agora estamos brincando.\nMe dê mais um número:");
    n4=Double.Parse(Console.ReadLine());

    
    if ((n1%2==0) && (n1%3==0)){

        Console.WriteLine("O número {0} é um múltiplo de dois e três",n1);
    }
    if ((n2%2==0) && (n2%3==0)){

        Console.WriteLine("O número {0} é um múltiplo de dois e três",n2);
    }
    if ((n3%2==0) && (n3%3==0)){

        Console.WriteLine("O número {0} é um múltiplo de dois e três",n3);
    }
    if ((n4%2==0) && (n4%3==0)){

        Console.WriteLine("O número {0} é um múltiplo de dois e três",n4);
    }
    
    if (n1%2==0){
        Console.WriteLine("O número {0} é um múltiplo de dois!",n1);
            
    }
    if (n2%2==0){
        Console.WriteLine("O número {0} é um múltiplo de dois!",n2);
            
    }
    if (n3%2==0){
        Console.WriteLine("O número {0} é um múltiplo de dois!",n3);
            
    }
    if (n4%2==0){
        Console.WriteLine("O número {0} é um múltiplo de dois!",n4);
            
    }
    if (n1%3==0){
        Console.WriteLine("O número {0} é um múltiplo de três",n1);
    } 
    if (n2%3==0){
        Console.WriteLine("O número {0} é um múltiplo de três",n2);
    }
    if (n3%3==0){
        Console.WriteLine("O número {0} é um múltiplo de três",n3);
    }
    if (n4%3==0){
        Console.WriteLine("O número {0} é um múltiplo de três",n4);
    }

The problem is that, this way, it always gives a repeated output to the multiple numbers of two and three. I would appreciate a light!

  • and what do you want to do in that case? What are all these numbers n1,N2,N3,N4, wasn’t it supposed to be just a number? Another thing, the equal operator is && and not &. Put all the code in and I explained it better

  • Usa else if()

  • The complete code is this one:

1 answer

0


You can use this logic:

if ((n1%2==0) & (n1%3==0)){
     Console.WriteLine("O número {0} é um múltiplo de dois e três",n1);
 } else if((n1%2==0)){
     Console.WriteLine("O número {0} é um múltiplo somente de dois",n1);
 } else if((n1%3==0)){
     Console.WriteLine("O número {0} é um múltiplo somente de três",n1);
 }

Try to create a generic function in which you pass an N number, so you don’t need to make the same logic for the other Ns values.

  • Solved, I didn’t think to use Else if in the other conditions, I was using no (n1%2==0)&&(n1%3==0), so as the if was already being filled in either case, Else if never gave the output. I didn’t even care! Thanks!!!!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.