Como comparar 2 variáveis java

Neste artigo, discutiremos as maneiras de comparar uma variável com valores.

Método 1: A ideia é comparar cada variável individualmente a todos os valores múltiplos de uma vez.

Programa 1:

// C++ program to compare one variable // with multiple variable #include <iostream> using namespace std; // Driver Code int main() { // Variable to be compared char character = 'a'; // Compare the given variable // with vowel using || operator // Check for vowel if (character == ('a' || 'e' || 'i' || 'o' || 'u')) { cout << "Vowel"; } // Otherwise Consonant else { cout << "Consonant"; } return 0; } // Java program to compare one variable // with multiple variable import java.util.*; class GFG { // Driver Code public static void main(String[] args) { // Variable to be compared char character = 'a'; // Compare the given variable // with vowel using || operator // Check for vowel if (character == ('a' || 'e' || 'i' || 'o' || 'u')) { System.out.print("Vowel"); } // Otherwise Consonant else { System.out.print("Consonant"); } } } // This code is contributed by Rajput-Ji # Python program to compare one variable # with multiple variable # Driver Code if __name__ == '__main__': # Variable to be compared character = 'a'; # Compare the given variable # with vowel using or operator # Check for vowel if (character == ('a' or 'e' or 'i' or 'o' or 'u')): print("Vowel"); # Otherwise Consonant else: print("Consonant"); # This code contributed by shikhasingrajput // C# program to compare one variable // with multiple variable using System; class GFG { // Driver Code public static void Main(String[] args) { // Variable to be compared char character = 'a'; // Compare the given variable // with vowel using || operator // Check for vowel if (character == ('a' || 'e' || 'i' || 'o' || 'u')) { Console.Write("Vowel"); } // Otherwise Consonant else { Console.Write("Consonant"); } } } // This code is contributed by 29AjayKumar <script> // Javascript program to compare one variable // with multiple variable // Variable to be compared var character = 'a'; // Compare the given variable // with vowel using || operator // Check for vowel if (character == ('a'. charCodeAt(0) || 'e'. charCodeAt(0) || 'i'. charCodeAt(0) || 'o'. charCodeAt(0) || 'u'. charCodeAt(0))) { document.write("Vowel"); } // Otherwise Consonant else { document.write("Consonant"); } // This code is contributed by SoumikMondal </script>

Explicação:
O código acima fornece a Resposta Errada ou erro, pois a variável de comparação da maneira acima está incorreta e é forçada a codificar da maneira abaixo:

// C++ program to compare one variable // with multiple variable #include <iostream> using namespace std; // Driver Code int main() { // Variable to be compared char character = 'a'; // Compare the given variable // with vowel individually // Check for vowel if (character == 'a' || character == 'e' || character == 'i' || character == 'o' || character == 'u') { cout << "Vowel"; } // Otherwise Consonant else { cout << "Consonant"; } return 0; } // Java program to compare // one variable with multiple // variable import java.util.*; class GFG{ // Driver Code public static void main(String[] args) { // Variable to be compared char character = 'a'; // Compare the given variable // with vowel using || operator // Check for vowel if (character == 'a' || character == 'e' || character == 'i' || character == 'o' || character == 'u') { System.out.print("Vowel"); } // Otherwise Consonant else { System.out.print("Consonant"); } } } // This code is contributed by 29AjayKumar # Python3 program to compare # one variable with multiple # variable # Driver Code if __name__ == '__main__': # Variable to be compared character = 'a'; # Compare the given variable # with vowel using or operator # Check for vowel if (character == 'a' or character == 'e' or character == 'i' or character == 'o' or character == 'u'): print("Vowel"); # Otherwise Consonant else: print("Consonant"); # This code contributed by Princi Singh // C# program to compare // one variable with multiple // variable using System; class GFG{ // Driver Code public static void Main(String[] args) { // Variable to be compared char character = 'a'; // Compare the given variable // with vowel using || operator // Check for vowel if (character == 'a' || character == 'e' || character == 'i' || character == 'o' || character == 'u') { Console.Write("Vowel"); } // Otherwise Consonant else { Console.Write("Consonant"); } } } // This code is contributed by gauravrajput1 <script> // javascript program to compare one variable // with multiple variable // Driver Code function checkCharacter(character) { // Compare the given variable // with vowel using || operator // Check for vowel if (character == 'a' || character == 'e' || character == 'i' || character == 'o' || character == 'u') { document.write("Vowel"); } // Otherwise Consonant else { document.write("Consonant"); } } // Driver Code checkCharacter('a'); // This code is contributed by bunnyram19. </script>

Método 2 - usando bitmasking: outra abordagem é verificar entre vários grupos de valores e, em seguida, criar uma máscara de bits dos valores e, em seguida, verificar se esse bit está definido.

Programa 2:

// C++ program to compare a value // with multiple values #include <iostream> using namespace std; // Driver Code int main() { // Create bitmasks unsigned group_1 = (1 << 1) | (1 << 2) | (1 << 3); unsigned group_2 = (1 << 4) | (1 << 5) | (1 << 6); unsigned group_3 = (1 << 7) | (1 << 8) | (1 << 9); // Values to be checked int value_to_check = 9; // Checking with created bitmask if ((1 << value_to_check) & group_1) { cout << "found a match in group 1"; } if ((1 << value_to_check) & group_2) { cout << "found a match in group 2"; } if ((1 << value_to_check) & group_3) { cout << "found a match in group 3"; } return 0; } // Java program to compare a value // with multiple values import java.util.*; class GFG{ // Driver Code public static void main(String[] args) { // Create bitmasks int group_1 = (1 << 1) | (1 << 2) | (1 << 3); int group_2 = (1 << 4) | (1 << 5) | (1 << 6); int group_3 = (1 << 7) | (1 << 8) | (1 << 9); // Values to be checked int value_to_check = 9; // Checking with created bitmask if (((1 << value_to_check) & group_1) > 0) { System.out.print("found a match " + "in group 1"); } if (((1 << value_to_check) & group_2) > 0) { System.out.print("found a match " + "in group 2"); } if (((1 << value_to_check) & group_3) > 0) { System.out.print("found a match " + "in group 3"); } } } // This code is contributed by shikhasingrajput # Python3 program to compare a value # with multiple values # Driver Code if __name__ == '__main__': # Create bitmasks group_1 = (1 << 1) | (1 << 2) | (1 << 3) group_2 = (1 << 4) | (1 << 5) | (1 << 6) group_3 = (1 << 7) | (1 << 8) | (1 << 9) # Values to be checked value_to_check = 9 # Checking with created bitmask if (((1 << value_to_check) & group_1) > 0): print("found a match " + "in group 1") if (((1 << value_to_check) & group_2) > 0): print("found a match " + "in group 2") if (((1 << value_to_check) & group_3) > 0): print("found a match " + "in group 3") # This code is contributed by gauravrajput1 // C# program to compare a value // with multiple values using System; class GFG{ // Driver Code public static void Main(String[] args) { // Create bitmasks int group_1 = (1 << 1) | (1 << 2) | (1 << 3); int group_2 = (1 << 4) | (1 << 5) | (1 << 6); int group_3 = (1 << 7) | (1 << 8) | (1 << 9); // Values to be checked int value_to_check = 9; // Checking with created // bitmask if (((1 << value_to_check) & group_1) > 0) { Console.Write("found a match " + "in group 1"); } if (((1 << value_to_check) & group_2) > 0) { Console.Write("found a match " + "in group 2"); } if (((1 << value_to_check) & group_3) > 0) { Console.Write("found a match " + "in group 3"); } } } // This code is contributed by gauravrajput1 <script> // JavaScript program to compare a value // with multiple values // Create bitmasks let group_1 = (1 << 1) | (1 << 2) | (1 << 3); let group_2 = (1 << 4) | (1 << 5) | (1 << 6); let group_3 = (1 << 7) | (1 << 8) | (1 << 9); // Values to be checked let value_to_check = 9; // Checking with created bitmask if (((1 << value_to_check) & group_1) > 0) { document.write("found a match " + "in group 1"); } if (((1 << value_to_check) & group_2) > 0) { document.write("found a match " + "in group 2"); } if (((1 << value_to_check) & group_3) > 0) { document.write("found a match " + "in group 3"); } // This code is contributed by unknown2108 </script>

Saídaencontrou uma correspondência no grupo 3

Observação : essa abordagem funciona melhor para valores que não excedem o tamanho natural de sua CPU. Normalmente, seria de 64 nos tempos modernos. A solução geral para este problema usando o Template do C++ 11 . Abaixo está o programa para o mesmo:

Programa 3:

// C++ program for comparing variable // with multiples variable #include <algorithm> #include <initializer_list> #include <iostream> using namespace std; template <typename T> // Function that checks given variable // v in the list lst[] bool is_in(const T& v, std::initializer_list<T> lst) { return (std::find(std::begin(lst), std::end(lst), v) != std::end(lst)); } // Driver Code int main() { // Number to be compared int num = 10; // Compare with multiple variables if (is_in(num, { 1, 2, 3 })) cout << "Found in group" << endl; else cout << "Not in group" << endl; // Character to be compared char c = 'a'; // Compare with multiple variables if (is_in(c, { 'x', 'a', 'c' })) cout << "Found in group" << endl; else cout << "Not in group" << endl; return 0; } # Python program for above approach import math # Function that checks given variable # v in the list lst[] def is_in(v, lst): return v in lst # Driver Code # Number to be compared num = 10 # Compare with multiple variables if (is_in(num, [1, 2, 3] )): print("Found in group") else: print("Not in group") # Character to be compared c = 'a' # Compare with multiple variables if (is_in(c, ['x', 'a', 'c'] )): print("Found in group") else: print("Not in group") #This code is contributed by shubhamsingh10 // C# program for the above approach using System; using System.Linq; public static class Extensions { // Function that checks given variable // v in the list lst[] public static bool is_in<T>(this T[] array, T target) { return array.Contains(target); } } class GFG{ // Driver Code static public void Main () { // Number to be compared int num = 10; int [] arr = { 1, 2, 3 }; // Compare with multiple variables if (arr.is_in(num)) Console.WriteLine("Found in group"); else Console.WriteLine("Not in group"); // Character to be compared char c = 'a'; char[] arr1 = { 'x', 'a', 'c' }; // Compare with multiple variables if (arr1.is_in(c)) Console.WriteLine("Found in group"); else Console.WriteLine("Not in group"); } } // This code is contributed by shubhamsingh10

SaídaFora do grupo Encontrado no grupo

Nota : não é muito eficiente quando não é usado com tipos primitivos. Para std::string, ele produzirá um erro . Essa tarefa se tornou muito fácil com o C++ 17 , pois ele vem com o Fold Expression . Isso geralmente é chamado de Folding, que ajuda a expressar a mesma ideia com menos código e funciona bem com qualquer tipo de dados. Aqui, “||” operador para reduzir todos os resultados booleanos a um único, que só é False se todos os resultados da comparação forem falsos . Abaixo está o programa para o mesmo:

Programa 4:

// C++ program for comparing variable // with multiple variables #include <algorithm> #include <initializer_list> #include <iostream> #include <string> using namespace std; template <typename First, typename... T> // Function that checks given variable // first in the list t[] bool is_in(First&& first, T&&... t) { return ((first == t) || ...); } // Driver Code int main() { // Number to be compared int num = 10; // Compare using template if (is_in(num, 1, 2, 3)) cout << "Found in group" << endl; else cout << "Not in group" << endl; // String to be compared string c = "abc"; // Compare using template if (is_in(c, "xyz", "bhy", "abc")) cout << "Found in group" << endl; else cout << "Not in group" << endl; return 0; }

Saída: 
 

Quer aprender com os melhores vídeos com curadoria e problemas práticos, confira o C++ Foundation Course for Basic to Advanced C++ e C++ STL Course for Foundation plus STL. Para completar sua preparação desde o aprendizado de um idioma até o DS Algo e muitos mais, consulte o Curso Completo de Preparação para Entrevistas .

Última postagem

Tag