आॅपरेटर्स (Operators)

आॅपरेटर्स कुछ ऐसे चिन्ह होते हैं जो एक या एक से ज्यादा आरग्यूमेंन्ट पर कार्य कर परिणाम प्रदान करते हैं। इनका प्रयोग प्रोग्राम में डेटा तथा वेरिएबल की वैल्यू में बदलाव में किया जाता है। जावा में निम्न प्रकार के आॅपरेटर्स होते हैं –

  • अर्थमैटिक आॅपरेटर्स (Arithmetic Operators)
  • रिलेशनल आॅपरेटर्स (Relationl Operators)
  • लाॅजिकल आॅपरेटर्स (Logical Operators)
  • असाइनमेंट आॅपरेटर्स (Assignment Operators)
  • इंक्रीमेंट व डिक्रीमेंट आॅपरेटर्स (Increment/Decrement Operators)
  • कंडीशनल आॅपरेटर्स (Conditional Operator)
  • बिटवाईज़ आॅपरेटर्स (Bitwise Operators)
  • स्पेशल आॅपरेटर्स (Special Operators)

अर्थमैटिक आॅपरेटर्स (Arithmetic Operators)

ऐसे आॅपरेशन जो गणितीय संख्याओं पर किए जाते है, इस श्रेणी में आते है।

ऑपरेटर विवरण उदाहरण (a=10, b=2) परिणाम
+ Addition a + b 12
- Subtraction a - b 8
* Multiplication a * b 20
/ Division a / b 5
% Modulo division a % b 0
public class Demo
{
  public static void main(String arr[])
  {
	int a = 10, b = 2;
	int x = a + b;
	System.out.println("a + b = " + x);
	x = a - b;
	System.out.println("a - b = " + x);
	x = a * b;
	System.out.println("a * b = " + x);
	x = a / b;
	System.out.println("a / b = " + x);
	x = a % b;
	System.out.println("a % b = " + x);
  }
}ऑनलाइन रन करें.

Output:

a + b = 12
a - b = 8
a * b = 20
a / b = 5
a % b = 0

रिलेशनल आॅपरेटर्स (Relationl Operators)

ऐसे आॅपरेशन जो दो संख्याओं के तुलनात्मक संबंध की जांच करते हों, इस श्रेणी में आते हैं।

ऑपरेटर विवरण उदाहरण (a=10, b=2) परिणाम
< is less than a < b false
<= is less than or equal to a <= b false
> is greater than a > b true
>= is greater than or equal to a >= b true
== is equal to a == b false
!= is not equal to a != b true
public class Demo
{
  public static void main(String arr[])
  {
	int a = 10, b = 2;
	boolean x = a < b;
	System.out.println("a < b = " + x);
	x = a <= b;
	System.out.println("a <= b = " + x);
	x = a > b;
	System.out.println("a > b = " + x);
	x = a >= b;
	System.out.println("a >= b = " + x);
	x = a == b;
	System.out.println("a == b = " + x);
	x = a != b;
	System.out.println("a != b = " + x);
  }
}ऑनलाइन रन करें.

Output:

a < b = false
a <= b = false
a > b = true
a >= b = true
a == b = false
a != b = true

लाॅजिकल आॅपरेटर्स (Logical Operators)

ऐसे आॅपरेटर जो दो लाॅजिकल वैल्यू के साथ प्रयोग किए जाते हैं, इस श्रेणी में आते हैं। सामान्यतया इन आॅपरेटरों का प्रयोग रिलेशनल आॅपरेटरों के साथ किया जाता है।

ऑपरेटर विवरण उदाहरण परिणाम
&& logical AND 7<3 && 4<12 false
|| logical OR 7<3 || 4<12 true
! logical NOT !(4<2) true

जब Logical AND (&&) का प्रयोग किया जाता है तो उसके दोनों तरफ वाले एक्सप्रेशन का परिणाम यदि true होगा तो ही अंतिम परिणाम true होगा। और यदि किसी एक भी एक्सप्रेशन का परिणाम false हुआ तो अंतिम परिणाम false ही होगा।

इसके विपरीत यदि Logical OR (||) का प्रयोग किया जाए तो यदि एक भी तरफ एक्सप्रेशन का परिणाम true हुआ तो अंतिम परिणाम true होगा। और यदि दोनों ही तरफ false हुआ तो अंतिम परिणाम false होगा।

public class Demo
{
  public static void main(String arr[])
  {
	boolean x = 7 < 3 && 4 < 12;
	System.out.println("7 < 3 && 4 < 12 = " + x);
    
	x = 7 < 3 || 4 < 12;
	System.out.println("7 < 3 || 4 < 12 = " + x);
    
	x = !(4 < 2);
	System.out.println("!(4 < 2) = " + x);
  }
}ऑनलाइन रन करें.

Output:

7 < 3 && 4 < 12 = false
7 < 3 || 4 < 12 = true
!(4 < 2) = true

असाइनमेंट आॅपरेटर्स (Assignment Operators)

ऐसे आॅपरेटर जो किसी वैल्यू को वेरिएबल में स्टोर करने के काम में आते हैं, वे इस श्रेणी में आते हैं। इन्हें शॉर्टहैंड असाइनमेंट ऑपरेटर भी कहते हैं।

ऑपरेटर उदाहरण (a=10) परिणाम
= a = 10 10
+= a += 2 12
-= a -= 2 8
*= a *= 2 20
/= a /= 2 5
%= a %= 2 0
public class Demo
{
  public static void main(String arr[])
  {
	int a = 10;
	System.out.println("a = " + a);
    
	a += 2;
	System.out.println("a += 2 will be " + a);
    
	a = 10;
	a -= 2;
	System.out.println("a -= 2 will be " + a);
    
	a = 10;
	a *= 2;
	System.out.println("a *= 2 will be " + a);
    
	a = 10;
	a /= 2;
	System.out.println("a /= 2 will be " + a);
    
	a = 10;
	a %= 2;
	System.out.println("a %= 2 will be " + a);
  }
}ऑनलाइन रन करें.

Output:

a = 10
a += 2 will be 12
a -= 2 will be 8
a *= 2 will be 20
a /= 2 will be 5
a %= 2 will be 0

इंक्रीमेंट व डिक्रीमेंट आॅपरेटर्स (Increment/Decrement Operators)

ऐसे आॅपरेटर जो किसी वेरिएबल की वैल्यू को बढ़ाने अथवा घटाने के काम में आते हैं, इस श्रेणी में आते हैं।

ऑपरेटर विवरण उदाहरण (a=10) परिणाम
++ Increment Operator a++ 11
-- Decrement Operator a-- 9

उपरोक्त आॅपरेटरों को दो प्रकार से प्रयोग किया जाता हैः प्री (Pre) एवं पोस्ट (Post)। प्री इंक्रीमेंट आॅपरेटर को आॅपरेंड के पहले लगाया जाता है (जैसे ++a) तथा पोस्ट इंक्रीमेंट को आॅपरेंड के बाद (जैसे a++)। जब इन आॅपरेटरों को अकेले प्रयोग किया जाता है तो दोनों के परिणाम समान ही होते हैं। वहीं यदि इनका प्रयोग किसी एक्सप्रेशन में किया जाता है तो दोनों के परिणाम अलग-अलग हो सकते हैं।

public class Demo
{
  public static void main(String arr[])
  {
	int a = 10;
	a++;
	System.out.println("a = " + a);
    
	a = 10;
	a--;
	System.out.println("a =  " + a);
  }
}ऑनलाइन रन करें.

Output:

a = 11
a =  9

कंडीशनल आॅपरेटर्स (Conditional Operators) ? :

इस श्रेणी में मात्र एक ही आॅपरेटर (?:) आता है। चूंकि इसमें तीन आॅपरेंड काम में आते हैं अतः इसे टरनरी आॅपरेटर के नाम से भी जाना जाता है। यह आॅपरेटर कंडीशन की जांच करने के काम में आता है। आॅपरेटर का प्रारूप इस प्रकार हैः

   Logical Expression1 ? Expression2 : Expression3;

यहां पर प्रथम एक्सप्रेशन में लाॅजिकल आपरेटरों के माध्यम से कोई कंडीशन दी जा सकती है। यदि दी गई कंडीशन true है तो Expression2 रन होगा अन्यथा Expression3 रन होगा। इसे निम्न उदाहरण से समझा जा सकता है -

a = 10;
b = 20;
c = (a>b) ? a : b;

ऊपर दिए गये उदाहरण में c वेरिएबल में 20 स्टोर हो जायेगा।

बिटवाईज़ आॅपरेटर्स (Bitwise Operators)

डेटा को बिट लेवल पर बदलने के लिये बिटवाईज़ आॅपरेटर्स का प्रयोग किया जाता है। बिटवाईज़ आॅपरेटर्स float तथा double डेटा पर काम में नहीं लिये जा सकते।

ऑपरेटर विवरण
& bitwise AND
| bitwise OR
^ bitwise exclusive OR
~ one's complement
<< bitwise shift left
>> bitwise shift right
>>> bitwise shift right with zero fill

डेटा को बिट लेवल पर बदलने के लिये बिटवाईज़ आॅपरेटर्स का प्रयोग किया जाता है। बिटवाईज़ आॅपरेटर्स float तथा double डेटा पर काम में नहीं लिये जा सकते।

बिट वाइज़ लाॅजिकल आॅपरेटर्स

बिट वाइज़ लाॅजिकल आॅपरेटर्स के परिणाम को निम्न सारणी से समझा जा सकता है-

A B A & B A | B A ^ B ~A
1 1 1 1 0 0
1 0 0 1 1 0
0 1 0 1 1 1
0 0 0 0 0 1
public class Bit
{
  public static void main(String arr[])
  {
	int a = 13, b = 25;
	System.out.println("a = " + a);
	System.out.println("b = " + b);
	System.out.println("a&b = " + (a & b));
	System.out.println("a|b = " + (a | b));
	System.out.println("a^b = " + (a ^ b));
  }
}ऑनलाइन रन करें.

Output:

a = 13
b = 25
a&b = 9
a|b = 29
a^b = 20

उपरोक्त उदाहरण को निम्न प्रकार से समझा जा सकता है-

13 की बाईनरी संख्या    00001101
25 की बाईनरी संख्या    00011001

	00001101
	00011001
a&b	00001001  =  9

	00001101
	00011001
a|b	00011101  =  29

	00001101
	00011001
a^b	00010100  =  20

बिट वाइज़ शिफ्ट आॅपरेटर्स

बिट वाइज़ शिफ्ट आॅपरेटर्स की सहायता से हम किसी इंटीजर वैल्यू की बाइनरी संख्याओं को दाएं या बाएं खिसका सकते हैं। इससे उस इंटीजर वैल्यू का मान दो-गुना या आधा रह जाता है। अर्थात् यह कहा जा सकता है कि जब किसी इंटीजर वैल्यू का मान हमें दो-गुना या आधा करना हो तो बिट-वाइज आॅपरेटर्स का प्रयोग करने से हमारे प्रोग्राम की गति तेज हो जाती है। नीचे दिए गए उदाहरण में >> तथा << आॅपरेटर के प्रयोग से एक इंटीजर का मान क्रमशः आधा तथा दो-गुना किया गया है।

public class Shift
{
  public static void main(String arr[])
  {
	int a = 8;
	System.out.println("a = " + a);
	System.out.println("a>>1 = " + (a>>1));
	System.out.println("a<<1 = " + (a<<1));
  }
}ऑनलाइन रन करें.

Output:

a = 8
a>>1 = 4
a<<1 = 16

उपरोक्त उदाहरण को निम्न प्रकार से समझा जा सकता है-

a=8	00001000  = 8
a>>1	00000100  = 4
a<<1	00010000  = 16

इन आॅपरेटर्स की सहायता से इंटीजर वैल्यू का मान 2 के गुणक में घटाया या बढ़ाया जा सकता है। नीचे दिए गए उदाहरण में << आॅपरेटर के प्रयोग से एक इंटीजर का मान चार-गुना किया गया है।

public class Shift
{
  public static void main(String arr[])
  {
	int a = 8;
	System.out.println("a = " + a);
	System.out.println("a<<2 = " + (a<<2));
  }
}ऑनलाइन रन करें.

Output:

a = 8
a<<2 = 32

उपरोक्त उदाहरण को निम्न प्रकार से समझा जा सकता है-

a=8	00001000  = 8
a<<2	00100000  = 32

स्पेशल आॅपरेटर्स (Special Operators)

इंसटेंसआॅफ आॅपरेटर (Instanceof Operator)

यदि बाईं तरफ दिया गया आॅब्जेक्ट दाईं तरफ दी गई क्लास से ही बना है तो यह आॅपरेटर true, अन्यथा false रिटर्न करता है। उदाहरण के लिए

ob instanceof Demo;

ऊपर दिये गए उदाहरण में यदि ob आॅब्जेक्टए Demo क्लास का है तो true रिटर्न होगा अन्यथा false रिटर्न होगा।

डाॅट आॅपरेटर (Dot Operator)

किसी क्लास के मेंबर्स का प्रयोग करने के लिये डाॅट आॅपरेटर का उपयोग किया जाता है। उदाहरणः

ob.a=10;
ob.show();

अन्य उदाहरण

उदाहरणः दिए गए उदाहरण में विभिन्न Increment तथा Decrement आॅपरेटर्स को समझाया गया है।

public class Demo
{
	public static void main(String[] args)
	{
		int a = 10, b;

		b = a++;
		System.out.println("a = " + a);
		System.out.println("b = " + b);

		a = 10;
		b = ++a;
		System.out.println("a = " + a);
		System.out.println("b = " + b);

		a = 10;
		b = a--;
		System.out.println("a = " + a);
		System.out.println("b = " + b);

		a = 10;
		b = --a;
		System.out.println("a = " + a);
		System.out.println("b = " + b);
	}
}ऑनलाइन रन करें.

Output:

a = 11
b = 10
a = 11
b = 11
a = 9
b = 10
a = 9
b = 9

उदाहरणः दिए गए उदाहरण में Conditional(? :) आॅपरेटर को समझाया गया है।

import java.util.Scanner;
public class Demo
{
	public static void main(String[] args)
	{
		int a, b, r;
		Scanner ob = new Scanner(System.in);

		System.out.print("Enter 1st no.: ");
		a = ob.nextInt();
		System.out.print("Enter 2nd no.: ");
		b = ob.nextInt();
		
		r = a>b ? a : b;
		
		System.out.println("Largest: " + r);
	}
}ऑनलाइन रन करें.

Output:

Enter 1st no.: 7
Enter 2nd no.: 9
Largest: 9

उदाहरणः दिए गए उदाहरण में इंक्रीमेंट आॅपरेटर को समझाया गया है।

public class MyClass 
{
    public static void main(String args[])
    {
        int a = 10, b;
        b = a++ + a++;
        //  10  + 11     (a=12)
        System.out.println("a = " + a + "  b = " + b);
        
        a = 10;
        b = a++ + ++a;
        //  10  + 12     (a=12)
        System.out.println("a = " + a + "  b = " + b);
        
        a = 10;
        b = a++ + a++ + ++a;
        //  10  + 11  +  13   (a=13)
        System.out.println("a = " + a + "  b = " + b);
    }
}

Output:

a = 12  b = 21
a = 12  b = 22
a = 13  b = 34
सुझाव / कमेंट