Learn Java
304 subscribers
92 photos
1 video
94 files
84 links
یاد گیری زبان برنامه نویسی جاوا و نکات و مفاهیم
کاربردی ان



@parsa8113
@bardiademon
Download Telegram
جاوا به زبان ساده ۳
Constructor در جاوا

Constructor در جاوا بدین صورت عمل میکند که به ما اجازه ساخت یک شی را میدهد. وقتی ما یک کلاس را new میکنیم متد constructor آن صدا زده میشود و شی مورد نظر را میسازد. پس constructor متدی است است که شی را میسازد.متد constructor ویژگی های زیر را دارد:

این متد چیزی return نمیکند.
نام متد همنام کلاس است.
در هنگام new کردن این متد صدا زده میشود تا شی ما ساخته شود.

This در جاوا

در آموزش قبل یک کلاس به نام Human ساختیم و برای آن constructor نیز نوشتیم.کد جلسه قبل به شکل زیر بود:



public class Human {

String name;

int age;

String height;

public Human() {

System.out.println(“no-arg constructor “);

name = “Jack”;

age = 22;

height = “1.8”;

}

public Human(String newname) {

name = newname;

age = 22;

height = “1.8”;

}

public void Speak(){

System.out.println(“my Name is “+ Name);

System.out.println(“i am “+ age+” year old”);

System.out.println(“my height is “+ Height +”meter”);

}

public void eat(){

System.out.println(“eating……”);

}

public void walking(){

System.out.println(“walking……”);

}

}



در کد بالا در constructor ما از متغییرهای دستی استفاده کردیم یعنی مثلا age را برای همه ۲۲ قرار دادیم و هر موقع بخواهیم آن را تغییر دهیم باید یک خط کد بزنیم برای هر شی به صورت جداگانه سن جدایی معرفی کنیم!!!! حالا میخواهیم کمی برنامه خود را پویاتر(dynamic) کنیم. یعنی هنگام new کردن یک شی تمام ویژگیهای شی را وارد کنیم.به کد زیر دقت کنید:

public Human(String name, int age, String height) {

this.name = name;

this.age = age;

this.height = height;

}

در کد بالا ما یک constructor با ورودی نوشتیم. و ورودیهای متد ما همنام ویژگیهای(فیلد های کلاس) ما هستند.حال به واژه this میرسیم.کلمه this در جاوا به شی که در آن هستیم اشاره دارد. و متغییر آن را در نظر میگیرد. به طور کلی کلمه this در جاوا یک اشاره گر به شی است. وقتی ما this.name را صدا میزنیم وارد شی ما میشود و ویژگی name آن را به ما میدهد.
مفهوم this در جاوا

توضیحات بالا شاید کمی شما را سردرگم کرده باشد برای همین یک قسمت جداگانه برای توضیح بیشتر this در جاوا در نظر گرفتیم. در آموزش قبل گفتیم که وقتی constructor مینویسیم هنگام new کردن جاوا آن را صدا میزند. حال ما یک شی از human میسازیم:

Human tom = new Human(“tom”);

اتفاقی که در حافظه میفتد این است که یک اشاره گر به نام tom ساخته میشود که به آدرس شی ساخته شده human اشاره دارد. پس وقتی ما یک شی را میسازیم یا یک کلاس را new میکنیم در حافظه آن ایجاد میشود و اشاره گری به آن اشاره میکند.

حال اگر ما یک شی دیگر با نام دیگری بسازیم:

Human jack = new Human();

در حافظه یک شی دیگر ساخته شده که با tom فرق دارد و حتی آدرس آن نیز متفاوت است. این مفهوم کلی new کردن در جاوا بود. وقتی ما کلمه this در جاوا را استفاده میکنیم به آدرس حافظه آن شی میرود و متغییرهای درونی آن را میبیند.
تست this در جاوا

برای تست کد های بالا، کد main زیر را بزنید:

public static void main(String[] args) {

Human jack = new Human(“jack”, 12, “1.3”);

jack.Speak();

System.out.println(“———–“);

Human tom = new Human(“tom”, 42, “1.7”);

tom.Speak();

}

در کد بالا از constructor جدید که کلمه this در آن به کار بردیم استفاده کردیم. کد بالا پویاتر و ساده تر از قبل است. خروجی کد this در جاوا به صورت زیر است:

my Name is jack

i am 12 year old

my height is 1.3meter

———–

my Name is tom

i am 42 year old

my height is 1.7meter
Learn Java
جاوا به زبان ساده ۳ Constructor در جاوا Constructor در جاوا بدین صورت عمل میکند که به ما اجازه ساخت یک شی را میدهد. وقتی ما یک کلاس را new میکنیم متد constructor آن صدا زده میشود و شی مورد نظر را میسازد. پس constructor متدی است است که شی را میسازد.متد constructor…
نکته مهم :؛


public class Human {

String name;

int age;

String height;

public Human() {

System.out.println(“no-arg constructor “);

name = “Jack”;

age = 22;

height = “1.8”;

}

public Human(String newname) {

name = newname;

age = 22;

height = “1.8”;

}

public void Speak(){

System.out.println(“my Name is “+ Name);

System.out.println(“i am “+ age+” year old”);

System.out.println(“my height is “+ Height +”meter”);

}

public void eat(){

System.out.println(“eating……”);

}

public void walking(){

System.out.println(“walking……”);

}

}

اگه این کد هارو به صورت مستقل ومجزا اجرا کنیم ارور no hav main method رو به ما میده چون که متدی نداره...پس باید از یه کلاس دیگه این کلاس رو فراخونی کنیمم..کلاسی که مین متد داشته باشه:

public static void main(String[] args) {

Human jack = new Human(“jack”, 12, “1.3”);

jack.Speak();

System.out.println(“———–“);

Human tom = new Human(“tom”, 42, “1.7”);

tom.Speak();

}
که به این صورت میشه و عبارت
public static void main(String[] args) در این کلاس بیانگر متد main هست
اموزش جاوا به زبان ساده ۴

خب میخوام روند تبدیل متغیر ها و تغییر اونا به متغیر دیگه رو اموزش بدیم

مثلا اگه ما بخوایم از int به double بریم کاره سختی نیست و بهش میگن up word ...برای اینکار اینطوری عمل میکنیم :

public class Test

int i = 120;
double d = i;
حب اگه این فایل رو ران کنیم خروجی فایل میشه :
120.0..چون که اگه یادتون باشه گفتم دابل برای اعداد اعشاری هست...پس وقتی تبدیلش کنیم به عدد اعشاری تبدیل میشه اون عددی رو که در نظر گرفتیم
اموزش جاوا به زبان ساده ۵

خب میخوایم روند down word رو یاد بدیم...یعنی مخالف up word و این یکم سخت تره چون روند نزولی داره
مثلا اگه بخوایم از double به int بریم(دقیقا بر عکس روند بالا رو اموزش میدم که راحت تر بفهمید)
باید اینطوری عمل کنیم:

double b = 3.99;
int i =(int) d;
خروجی این برنامه میشه ۳..یعنی جاوا از شر عدد اعشاری خلاص میشه و ۳ چاپ میشه..چون ما به int تبدیل کردیم و int برای اعداد صحیح بود و نه اعشاری

حالا اگه بخوایم اینت رو به بایت تبدیل کنیم
همینطوریه ولی اگه یه اینتی رو در نظر بگیرم و مقدار ۱۲۸ بهش بدیم..مقداری که از محدوده ی بایت خارجه و اگه اونو به بایت تبدیل کنیم چه اتفاقی میفته..الان به شما توضیح میدم

int p = 128;
byte b = (byte) p;

خروجی این برنامه به صورت -128 به نمایش در میاد (:
چرا؟
چچون که ۱۲۸ فقط یکی از محدوده ی بایت ما بیشتره و توی اعداد منفیش این محدوده موجوده پس جاوا میاد دور میزنه صفر رو و -۱۲۸ رو به دست میاره
اموزش جاوا به زبان ساده ۶
اپراتور ها در جاوا
== مساوی
++ به اضافه ی ۱
+ جمع
- تفریق
- - منهای یک
* ضرب
/ تقسیم
٪ باقیمانده (همون درصد خودمون)

توجه کنید که یک مساوی (= ) تخصیص نام داره و اپراتور محسوب نمیشه

مثللا :
int i = 10;
i = i++;
خب اگه اینو ران کنید جاوا همون ۱۰ رو نمایش میده..درصورتی که باید ۱۱ رو نمایش بده چون پلاس پلاس به علاوه ی یک میکنه
خب دلیل این عمر اینه که جاوا i ++ رو نمیخونه و تا i بیشتر نمیخونه...پس ما کاری که میکنیم میای پلاس پلاس رو میزاریم قبل از اون

int i = 10;
i = ++i;
خب اینو ران کنیم ۱۱ رو نشون ما میده

یا منفی منفی بزاریم نه رو نمایش میده

int i = 10;
i = i +5
اگه اینو ران کنید میشه ۱۵
ولی اینو میشه یه طوره دیگه هم مطرح کرد
خب چطوری؟

میایم مثبت رو قبل از مساوری قرار میدیم (:
i +=5;
یا
i -=5;
این
i+=5;
همون کاره i = i + 5; رو میکنه
ولی خب اینطوری با کلاس تره دیگه😂
اموزش جاوا به زبان ساده ۷

خب میخوایم راجع به if و else یه توضیح کوچیکی بدیم

خب if همون اگره خودمونه دیه و هر اگری ..هر شرطی..یه در غیر این صورتی باید داشته باشه که ما اونو else نامگذاری میکنیم

int i = 10;
if (i <10)
{
System.out.println("Less then 10");
}
else
{
System.out.println("bigger then 10");
}
خب ما اینجا تعریف کردم اگه i کوچیک تر از ده بود بزن less then10 و اگه این شرط برقرار نبود بزن bigger then 10
و خب خروجی این فایل میشه bigget then 10 ..چون i از ده کوچیکتر نیست
اگه علامت کوچیک تر مساوی بزاریم
<=
خروجی این فایل میشه less then 10 چون با اینکه i از ده کوچیک تر نیست ولی مساویش که هست
پس این شرط برقرار و if رو اجرا میکنه
Learn Java
اموزش جاوا به زبان ساده ۷ خب میخوایم راجع به if و else یه توضیح کوچیکی بدیم خب if همون اگره خودمونه دیه و هر اگری ..هر شرطی..یه در غیر این صورتی باید داشته باشه که ما اونو else نامگذاری میکنیم int i = 10; if (i <10) { System.out.println("Less then 10");…
توضیحات اضافی. درس ۷
اگه بخوایم دو تا شرط رو تو یه if بزاریم...یعنی یا ,و رو تعریف کنیم توی if اینطوری عمل میکنیم

if (i<10 && i<=10)
این یعنی اگر ده کویچکتر و i کوچیکتر مساوی بود این شرط رو اجرا کن
مثلا هر شرطی که بگیم
اموزش جاوا به زبان ساده ۸

خب میخوایم یه ماشین حساب بسازیم..البته ماشین حساب که نه..یه حسابگر ساده دیگه !

اول باید از کتابخونه ی اسکنر جاوا استفاده کنیم ..تا اسکن کنه عددایی که روی کیبورد وارد میشه و جمع اونارو به نمایش در بیاره و اینطوری عمل میکنیم
import java.util.Scanner;
scanner نه دوستان...s حتما باید بزرگ باشه..توی جاوا همه ی s ها بزرگه...مثلا System...یا String...

خب .وقتی ما ازین کتابخونه اسنتفاده کردیم باید یه جایی از حافظه رو بهش اختصاص بدیم و اسمی برای اون تایین کنیم که وقتی بهش نیاز داشتیم فراخونیش کنیم دیگه :

Scanner name = new Scanner(System.in);

Scanner name: یعنی اینکه یک نامی برای اسکنرمون انتخاب کردیم

new Scanner(System.in); : خب این یعنی ایننکه اسکنر name یک اسکنر جدید هست که داده هارو از System.in یا همون کیبورد سیستم اسکن میکنه

خب حالا سه تا متغیر int باید تعریف کنیم...یکیش عدد اول..یکیش عدد دوم و بعدیش جوابشون

ببینید ما میتونیم بیایم اینطوری تعریف کنیم
int i;
int b;
int sum;
ولی میشه یه طوره دیگه گولش زد که جا کمتر بگیره ..و باید در این روش بین هر اینت یک کاما بزارید

به این صورت یعنی :
int i, b, sum;
حب حالا باید یه چیزی سیستم بندازه بیرون که کاربر بفهمه باید چه کار کنه دیگه

System.out.println("Enter two integers to calculate their sum");
میتونید متنشو فارسی بنویسی..مثلا بنویسی دو عدد رو برای جمع وارد کنید ولی اینطوری بهتره چون وقتی میخواید توی ترمینال کامپایل کنید حروف فارسی برعکس کامپایل میشه

خب حالا باید هر سه متغیر رو به صورت کامل تعریف کنیم
اول اینکه میخوای عدد اول رو بگیره و بره لاین بعدی عدد دوم رو بگیره و تو لاین سوم مجموع عددارو بندازه بیرون

پس میایم میگیم :
i = name.nextInt();
خب این یعنی چی
ببینید...ما برای اسکنروم اسم name رو گذاشتیم
اینجاهم وقتی میخوایم از اسکر استفاده کنیم باید اسمشو فراخونی کنیم دیگه
پس int i رو برابر با name قرار میدیم
اون nextInt هم برای رفتن به لاین بعدیه
مثلا برای String : nextLine هست
یا برای double : next.Double هست
یا بایت هم نکست باید دیگه..نکست فلوت..نکست لانگ..به این صورته خلاصه

خب حالا عدد دوم مارو باید بگیره..ما int دوممون رو b نامگذاری کردیم
پس اینم به همین صورت باید تعریف کنیم
b = name.nextInt();

حالا هم باید دو عدد رو جمع کنیم وبندازیمش بیرون /

sum = i + b;
حالا i و b جمع شدن و توی متغیر sum ذخیره شدن
ولی خب سیستم باید sum رو بندازه بیرون که بفهمیم جواب چی بوده

System.out.println("sum is : "+sum);
خب اینجا پرینت میکنه sum is و بعد گفتیم sum رو بده بیرون..
به همین راحتی یک حسابگر ساده به زبان جاوا سختیم
درکل فایل اینطوری در میاد

import java.util.Scanner;

class Addnumbers
{
public static void main (String [] args)
{
int i, b, sum;
System.out.println("Enter two integer to calculate their sum ");
Scanner name = new Scanner (System.in);

i = name.nextInt();
b = name.nextInt();
sum = i + b;
System.out.println("sum is : "+sum);
}
}
اموزش جاوا به زبان ساده ۹

توضیح if

public class IFexample
{
public static void main (String[] args)
{
int t = 7;
if (t == 9) // condition
{
System.out.println(""Yes);
}
else
{
System.out.println("No");
}
}
}

توضیحات در مورد این درس :

یه متغیر به اسم t تعریف کردیم و بعد اون رو برابر با ۷ قرار دادیم

یه شرط گذاشتیم که اگر t مساوی بود با 9 بنویس yes
وگرنه (else) برای ما پرینت کن no
خب اگه اینو ران کنیم NO رو نمایش میده
چون که تی هفت هست و مساوی با نه نیست و شرط اول اجرا نیست

else رو همیشه باید بعد از تمامی شرط هاتون قرار بدید

به همین سادگی دست.رات شرطی رو یاد گرفتید

سوالی بود :@prsw16
جاوا به زبان ساده ۱۰

دستورات شرطی:
دستورات شرطی اینقدر کوچیکن که میتونیم توی پرینت هم قرارشون بودیم!
چطوری؟!
public class Shart
{
public static void main (String[] args)
{
int age = 25;
System.out.println(age > 50 ? "You are old" : "You are young");
}
}

اگر age ما بزرگ تر از پنجاه بود بزن you are old و در غیر این صورت بنویس you are young
؟: علامت سوال یعنی چک کن ببین age ما ۵۰ هست یا نه..درواقع علامت سوال توی این شرط برابر با if هست

:.کالن...سمیکالن نه ها..کالن (همین نقل قول خودمون) این نقل قول ما حکم else توی if رو داره

این یک دستور شرطی بسیار ساده و کاراماده که از سی پلاس پلاس اومده و خیلی هم کاربردیه....
جاوا به زبان ساده ۱۱:
این جلسه میخوای راجع به switch صحبت کنیم

اگه if رو به خاطر بیارید اینطوری بود
:

public class Switch
{
public static void main (String[] args)
{
int age = 3;
if (age == 3)
{
System.out.println("3");
}
else if (age = 4)
{
System.out.println("4");
}
}
}
خب این خیلی کار میبره...باید دونه دونه بنویسی ..مثلا اگه تا سن ۵۰ بخواید بزنید باید ۵۰ تا شرط بنویسید

خب جاوا یه راهه دیگه برای ما گذاشته..باید از switch استفاده کنیم

اینطوری عمل میکنیم

public class switch
{
public static void main(String[] args)
{
int age = 3;
switch (age)
{
case 1:
System.out.println("one !");
break;
case 2:
System.out.println("two!");
break;
case 3:
System.out.println("three!");
break;

default:
System.out.println("nothing");
break;
}
}
}


switch (age):خب این یعنی ایننکه متغیر ageرو چک کن

case 1: یعنی مورد ما اگه ۱ بود بیا پرینت کن ۱...در واقع age ما اگه ۱ بود بیا پرینت کن one
یادتون باید بین case و 1 یک فاصله باید بدید..درضمن case کالن داره..سیمکالن نداره

break:break یعنی کد رو بشکن..سمیکالن داره break..خب اگه ما break رو نزاریم میاد case های پایینی هم چاپ میکنی..اگه کد رو نشکنیم همشو چاپ میکنه..یعنی age ما سه هست ولی پرینت میکنه ۱ و ۲ و سه..پس باید کد رو با break بشکنیم

خب ..یادتونه توی if یه else داشتیم؟اینجا هم یه default..یعنی اگه هیچکدوم درست نبود این کارو انجام بده..درواقع پرینت کن nothing..

این روش خیلی راحت تر از if هست..توی همه دانشگاه ها if رو درس میدن..فکر نکنم جایی اینطوری درس بده

امیدوارم خوشتون اومده باشه...تمرین کنید و یاد بگیرید
سوالی بود:@prsw16
اموزش جاوا به زبان ساده ۱۲:
این جلسه میخوایم راجع به حلقه ی while صحبت کنیم

خب while چیه؟while یعنی تا زمانی که..مثلا تا زمانی که منغیر ما ۱۰ هست و کوچیکتر مساوی بیست هست بهش یدونه اضافه کن و به بیست که رسید قعطش کن..

public class Whileloop
{
public static void main (String[] args);
{
int i = 0;

while (i < 10)
{
System.out.println(i);
}
}
}

خب این برنامه دقیقا چطوریه...ما یه متغیر به اسم i درست کردیم...و گفتیم تا زمانی که i کوچیکتر از ۱۰ هست برای ما i رو پرینت کن...اینطوری تا ابد ۰ رو چاپ میکنه ..چرا؟چون همیشه صفره و هربار چک میکنه میبینه صفره و کوچیکتر از دهه..و همینطور چاپش میکنی تا ابد..ما باید یه بلایی سرش بیاریم که این اتفاق نیفته

مثلا:
public class Whileloop
{
public static void main (String[] args);
{
int i = 0;

while (i < 10)
{
System.out.println(i);
i++;
}
}
}
خب این همون اسکریپت بالایی هست ولی گفتیم بیا چک کن وقتی i کوچیک تر از ده هست اگر بود یدونه بهش اضافه کن و بندازش بیرون..اینطوری از ۱ تا ۹ رو چاپ میکنه..خب اگه خواستید تا ده هم چاپ کنه باید جای کوچیکتر بزنید کوچیکتر مساوی
>=
به همین راحتی حلقه ی while رو تعریف کردیم

سوالی بود @prsw16
اموزش جاوا به زبان ساده ۱۳؛ توالی ها
\n :
خط جدید. کرسر را در ابتدای خط بعدی قرار میده
\t :
تب افقی.کرسر رو به اندازه یک tab به جلو انتقال میده
\r:
کرسر رو به ابتدای خط جاری برمیگردونه ..با \n اشتباهش نگیرید
\\: کاراکتر \ از این توالی برای چاپ کاراکتر \ استفاده میشه
اموزش جاوا به زبان ساده ۱۴؛
نمایش متن با printf

کاربرد متد System.out.printf در نمایش قالب بندی شده داده ها است (حرف f به معنی "formatted" است)در برنامه پایین از این متد برای چاپ رشته های "Welcome to" و "Java Programming !" استفاده شده

مثال :

public class Welcom2
{
public static void main (String[] args)
{
System.out.printf("%s\n%s\n" ,
"Weolcom to " , "Java Programming!");
}
}
اموزش جاوا به زبان ساده ۱۵ :
عملگرها :
*
/
%
+
_
+
=

* :
ضرب..اولویت اول .اگه چند مورد از این عملگر وجود داشته باشه !
/:
تقسیم ..ترتیب اجرا از سمت چپ به راست
%:
باقیمانده
+:
جمع :
اولویت بعدی..اگه چندتا عملگر جمع و تفریق داشته باشیم !
-:
تفریق..ترتیب اجرا از سمت چپ به سمت راست

= : تخصیص ...اخرین ارزیابی
اموزش جاوا به زبان ساده ۱۶ :
عملگر های برابری و رابطه ای : بخش یک

یک شرط ..یه عبارته که میتونه true یا false باشه..در این قسمت ساختار if رو بیشتر مورد ارزیابی قرار میدیم...
شرط هایی که توی if تعریف میکنیم میتونند از عملگر های برابری و رابطه ای که در پایین بیشتر توضیح میدیم استفاده کنند


== :
عملگر برابری
مثال در جاوا :
y == x
مفهوم در جاوا :
x با y برابر است

!= :
عملگر نابرابری
مثال در جاوا :
y != x
مفهوم در جاوا :
x با y برابر نیست


عملگر های رابطه ای
که چهار نوع دارن

>:
مثال در جاوا :
x<y
مفهوم در جاوا
x از y کوچیک تر است

<: برعکس عبارت بالایی


>= :
بزرگتر مساوی

>= :
کوچیکتر مساوی
اموزش جاوا به زبان ساده ۱۷ :
عملگر های برابر و رابطه ای :بخش دو

برنامه ای که خواهیم ساخت از ۶ عبارت برای مقایسه ی دو عدد استفاده میکنه...اگر شرطامون بر قرار بود (true باشد) خروجی مرتبط با اون عبارت به اجرا در میاد

import java.util.Scanner;
public class Parsa
{
public static void main (String[] args)
{
int num1;
int num2
SCanner input = new Scanner (System.in);
System.out.println("لطفا عدد اول را وارد کنید");
num1 = input.nextInt();
System.out.println("لطفا عدد دوم رو وارد کنید");
num2 = input.nextInt();

if (num1 == num2)
System.out.println(num1 + "==" + num2 );
else if (num1 != num2)
System.out.println(num1 + "!=" + num2);
else
System.out.println("nothing!!!");
}
}
اموزش جاوا به زبان ساده ۱۷ :
عملگر های برابر و رابطه ای :بخش دو

برنامه ای که خواهیم ساخت از ۶ عبارت برای مقایسه ی دو عدد استفاده میکنه...اگر شرطامون بر قرار بود (true باشد) خروجی مرتبط با اون عبارت به اجرا در میاد

import java.util.Scanner;
public class Parsa
{
public static void main (String[] args)
{
int num1;
int num2
SCanner input = new Scanner (System.in);
System.out.println("لطفا عدد اول را وارد کنید");
num1 = input.nextInt();
System.out.println("لطفا عدد دوم رو وارد کنید");
num2 = input.nextInt();

if (num1 == num2)
System.out.println(num1 + "==" + num2 );
else if (num1 != num2)
System.out.println(num1 + "!=" + num2);
else
System.out.println("nothing!!!");
}
}
Age.java
1.4 KB
درس برای جلسه ی if
اموزش جاوا به زبان ساده ۱۸:
حلقه ی do...while
public class Do{
public static void main (String[] args)

int counter = 0;
do
{
System.out.println(counter);
counter++;
} while(counter <= 10);
}
}

فرق while و do while:..

وقتی ما while رو استفاده کنیم اول چک می کنه و بعد اگه شرط برقرار بود اون کاریو که خواستیم انجام میده

ولی do while اول یکبار اون کاریو که خواستیم انجام میده و بعد شرط روچک میکنه..یعنی چی؟

ببینید ما اگه یه متغیر تعریف کنیم
int counter=0;

خب اگه از while استفاده کنیم اینطوری میشه

while (counter>=10)
{
System.out.println(counter);
counter++;
}
خب اینجا هیچی چاپ نمیکنه چون ۰ بزرگتر یا مساوی ده نیست...پس هیچ شر طی رو اجرا نمیکنه

ولی اگه ما do بزاریم اولش مثل بالا که نوشتم..یکبار میاد شرط رو اجرا میکنه و بعد چک میکنه ببینه درسته یانه

سوالی بود :
@prsw16