ریاضی کے آپریشنز
آئیے سب سے آسان چیز کے ساتھ شروع کریں - ریاضی کی کارروائیوں کے ساتھ۔ یہ معروف اضافہ (+ نشان)، گھٹاؤ (-)، ضرب (*) اور تقسیم (/) ہیں۔public class Main {
public static void main(String[] args) {
int x = 999;
int y = 33;
System.out.println(x+y);
System.out.println(x-y);
System.out.println(x*y);
System.out.println(x/y);
}
}
کنسول آؤٹ پٹ:
1032
966
32967
30
آپ یہ سب استعمال کر چکے ہیں۔ آپ ان میں ایک آپریشن شامل کر سکتے ہیں %
- بقیہ ڈویژن۔
public class Main {
public static void main(String[] args) {
int x = 33;
int y = 33%2;
System.out.println(y);
}
}
کنسول آؤٹ پٹ:
1
اس مثال میں، ہم 33 کو 2 سے تقسیم کرتے ہیں۔ نتیجتاً، ہمیں 16 ملتا ہے اور ایک اضافی "ٹیل" باقی رہ جاتی ہے جو 2 - ایک سے تقسیم نہیں ہوتی۔ یہ "دم" "تقسیم کے بقیہ" آپریشن کا نتیجہ ہوگا۔ Java (نیز ریاضی) موازنہ آپریٹرز کو لاگو کرتا ہے ۔ آپ شاید انہیں اسکول سے بھی جانتے ہیں:
- برابر (
==
) - مزید (
>
) - کم (
<
) >=
( ) سے بڑا یا اس کے برابر<=
( ) سے کم یا اس کے برابر- برابر نہیں (
!=
)
==
، اور ایک نشان کے ساتھ نہیں =
۔ جاوا میں یونٹ سائن =
ایک اسائنمنٹ آپریٹر ہے، جہاں ایک متغیر کو نمبر، سٹرنگ، یا دوسرے متغیر کی قدر تفویض کی جاتی ہے۔
public class Main {
public static void main(String[] args) {
int x = 33;
int y = 999;
System.out.println(x=y);// expect false to be printed to the console
}
}
کنسول آؤٹ پٹ:
999
افوہ! یہ واضح طور پر وہ نتیجہ نہیں ہے جس کی ہمیں توقع تھی۔ یہ مکمل طور پر مختلف قسم کا ڈیٹا ہے: ہمیں دیکھنے کی توقع تھی boolean
، لیکن ایک نمبر ملا۔ اس کی وجہ یہ ہے کہ قوسین میں ہمارے پاس اسائنمنٹ آپریشن ہے، موازنہ نہیں۔ x=y
قدر y
(999) متغیر کو تفویض کی گئی تھی x
، اور پھر ہم نے اسے x
کنسول پر پرنٹ کیا۔ درست آپشن:
public class Main {
public static void main(String[] args) {
int x = 33;
int y = 999;
System.out.println(x==y);
}
}
کنسول آؤٹ پٹ:
false
اب ہم نے صحیح طریقے سے 2 نمبروں کا موازنہ کیا ہے! :) اسائنمنٹ آپریشن ( =
) کی ایک اور خصوصیت یہ ہے کہ اسے "زنجیروں میں بند" کیا جا سکتا ہے:
public class Main {
public static void main(String[] args) {
int x = 999;
int y = 33;
int z = 256;
x = y = z;
System.out.println(x);
}
}
کنسول آؤٹ پٹ:
256
یاد رکھیں: اسائنمنٹ دائیں سے بائیں کی جاتی ہے۔ اس اظہار ( x = y = z
) کو مراحل میں انجام دیا جائے گا:
- y = z، یعنی y = 256
- x = y، یعنی x = 256
یونری آپریشنز
انہیں لفظ "uno" - "one" سے "unary" کہا جاتا ہے۔ انہوں نے یہ نام حاصل کیا کیونکہ، پچھلے لوگوں کے برعکس، وہ ایک نمبر پر کئے جاتے ہیں، اور کئی پر نہیں. یہ شامل ہیں:-
یونیری مائنس۔ یہ نمبر کے نشان کو الٹ دیتا ہے۔
public class Main { public static void main(String[] args) { int x = 999; // change the sign for the first time x = -x; System.out.println(x); // change the sign a second time x= -x; System.out.println(x); } }
کنسول آؤٹ پٹ:
-999 999
ہم نے یونیری مائنس دو بار استعمال کیا۔ نتیجے کے طور پر، ہمارا نمبر پہلے منفی، اور پھر مثبت!
-
اضافہ (
++
) اور کمی (--
)ایک آپریشن
++
ایک نمبر کو بڑھاتا ہے، اور ایک آپریشن--
اسے اسی یونٹ سے گھٹاتا ہے۔public class Main { public static void main(String[] args) { int x = 999; x++; System.out.println(x); x--; System.out.println(x); } }
کنسول آؤٹ پٹ:
1000 999
x++
- postfix notation ++x
- prefix notation اگر آپ نمبر سے پہلے یا بعد میں pluses اور minuses ڈالیں تو بنیادی فرق کیا ہے؟ آئیے ایک مثال میں دیکھتے ہیں:
public class Main {
public static void main(String[] args) {
int x = 999;
int y = x++;
System.out.println(y);
}
}
کنسول آؤٹ پٹ:
999
کیا کچھ گڑبڑ ہے! ہم x
1 سے اضافہ کرنا چاہتے تھے اور متغیر کو ایک نئی قدر تفویض کرنا چاہتے تھے y
۔ یعنی، y 1000 کے برابر ہونا چاہیے۔ لیکن ہمارے پاس ایک مختلف نتیجہ ہے - 999۔ یہ پتہ چلتا ہے کہ اس میں x
اضافہ نہیں کیا گیا تھا، اور انکریمنٹ آپریشن نے کام نہیں کیا؟ اس نے کیسے کام کیا۔ اس کی تصدیق کرنے کے لیے، آخر میں کنسول پر x پرنٹ کرنے کی کوشش کریں :)
public class Main {
public static void main(String[] args) {
int x = 999;
int y = x++;
System.out.println(y);
System.out.println(x);
}
}
کنسول آؤٹ پٹ:
999
1000
درحقیقت، اسی لیے پوسٹ فکس آپریشن کو اس طرح کہا جاتا ہے: یہ مرکزی اظہار کے بعد انجام دیا جاتا ہے۔ یعنی، ہمارے معاملے میں: int y = x++;
سب سے پہلے اس پر عمل کیا جاتا ہے y = x
(اور متغیر y کو ابتدائی قدر تفویض کی جائے گی x
)، اور تب ہی x++
۔ اگر ہم اس رویے سے مطمئن نہیں ہیں تو کیا ہوگا؟ آپ کو سابقہ اشارہ استعمال کرنے کی ضرورت ہے:
public class Main {
public static void main(String[] args) {
int x = 999;
int y = ++x;
System.out.println(y);
}
}
اس صورت میں، یہ سب سے پہلے ++x
اور صرف اس کے بعد کام کرے گا. y = x;
یہ فرق فوری طور پر یاد رکھنے کے قابل ہے تاکہ ایک حقیقی پروگرام میں غلطیاں نہ ہو، جس میں تمام رویے اس کی وجہ سے الٹا ہو سکتے ہیں :)
مشترکہ آپریشنز
اس کے علاوہ، جاوا میں نام نہاد مشترکہ آپریشنز ہیں۔ وہ دو آپریشنز کا مجموعہ استعمال کرتے ہیں:- تفویض
- ریاضی کا آپریشن
+=
-=
*=
/=
%=
public class Main {
public static void main(String[] args) {
int x = 999;
int y = 33;
x += y;
System.out.println(x);
}
}
کنسول آؤٹ پٹ:
1032
x += y
مطلب x = x + y
_ صرف اختصار کی خاطر، لگاتار دو حروف استعمال ہوتے ہیں۔ یہ -=
, *=
, /=
اور کے مجموعوں کے ساتھ بھی کام کرتا ہے %=
۔
منطقی آپریشنز
نمبروں پر کارروائیوں کے علاوہ، جاوا میں بولین متغیرات -true
اور false
. یہ کارروائیاں منطقی آپریٹرز کا استعمال کرتے ہوئے کی جاتی ہیں۔
-
!
- "نہیں" آپریٹر۔ بولین متغیر کی قدر کو ریورس کرتا ہے۔public class Main { public static void main(String[] args) { boolean x = true; System.out.println(!x); } }
کنسول آؤٹ پٹ:
false
-
&&
- آپریٹر "اور"۔ ایک قدرtrue
صرف اس صورت میں لوٹاتا ہے جب دونوں آپرینڈز ہوںtrue
۔public class Main { public static void main(String[] args) { System.out.println(100 > 10 && 100 > 200); System.out.println(100 > 50 && 100 >= 100); } }
کنسول آؤٹ پٹ:
false true
پہلے آپریشن کا نتیجہ ہے
false
، چونکہ ایک شرط غلط ہے، یعنی 100 > 200۔ آپریٹر کو&&
واپس کرنے کے لیےtrue
تمام شرائط درست ہونے کی ضرورت ہے (جیسا کہ دوسری لائن میں، مثال کے طور پر) ۔ -
||
- "یا" آپریٹر۔ لوٹاتا ہےtrue
جب کاموں میں سے کم از کم ایک درست ہو۔یہاں ہماری پچھلی مثال مختلف طریقے سے کام کرے گی:
public class Main { public static void main(String[] args) { System.out.println(100 > 10 || 100 > 200); } }
کنسول آؤٹ پٹ:
true
Выражение 100 > 200 по-прежнему ложно, но оператору “or” вполне достаточно, что первая часть (100 > 10) является истинной.
GO TO FULL VERSION