Phoenix

مشکل در استفاده همزمان از کلاس اسکنر و دستور if در جاوا

Phoenix ۱۳۹۶/۰۱/۰۷ زبان برنامه‌نویسی جاوا

با سلام و خسته نباشید خدمت دوستان

من تو استفاده ی همزمان از کلاس اسکنر و دستور if دچار مشکل شدم.

مشکلم از این قراره که وقتی میخوام یه ورودی از کاربر بگیرم و اون رو در یه متغیر ذخیره کنم و بعد با دستور if چک کنم که ایا فرمتی که کاربر وارد کرده درست هست یا نه توی کنسول 2 تا ورودی از کاربر میگیره

برای مثال تو کد زیر میخوام یه ورودی از کاربر بگیرم و اگه صحیح بود اونو تو a ذخیره کنه و اگر هم نبود به کاربر اخطار بده

import java.util.Scanner;

public class Test_class {

	public static void main(String[] args) {

		Scanner mys = new Scanner(System.in);
		int a ;
		a = mys.nextInt();
		if (mys.hasNextInt()) {System.out.println ("motaghaer a = " + a);}
		else {System.out.println("format sahih nist\nfaghat adad sahih vared konid");}
	
		
	}

}

من مبتدی هستم پس اگه براتون امکان داره علاوه بر توضیح بخشی از کد تصحیح شده رو هم برام بنویسید خیلی ممنون میشم.

 

پاسخ‌ها به این تاپیک
Morteza Narouie
Morteza Narouie
۱۳۹۶/۰۱/۰۷

سلام

اشتباه شما در کد بالا این است که سعی کردید که آبجکت یا نمونه ای که از کلاس اسکنر رو ساختید در شرط if بررسی کنید در صورتی که هدف شما بررسی کردن متغیر a هست.

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

عملگر                                      نام

<                                        بزرگتر

>                                       کوچکتر

<=                                بزرگتر مساوی

>=                               کوچکتر مساوی

==                                    مساوی

=!                                    نامساوی

 

فقط کافیه از این عملگرها بین دو متغیر استفاده کنید.

توجه داشته باشید اگر بین عملگرهای دو کاراکتری مانند == نباید فاصله یا space وجود داشته باشد.

دستور غلط                         دستور صحیح

  = =                                ==

برای درک بهتر به مثال زیر توجه کنید.(کد شما رو تغییر دادم).

برنامه فوق دو عدد صحیح از کاربر میگیرد و این دو عدد را با عملگرهای مقایسه‌ای بررسی میکند.

 

import java.util.Scanner;

public class Test_class {

	public static void main(String[] args) {
                //ساخت یک نمونه از کلاس اسکنر
		Scanner mys = new Scanner(System.in);

                //ساخت متغیر a
		int a ;
                //ساخت متغیر b
                int b;

                //نمایش پیغام برای کاربر تا در ورودی عدد اول را وارد کند
                System.out.print("Please first interger number: ");
		a = mys.nextInt();
                //نمایش پیغام برای کاربر تا در ورودی عدد دوم را وارد کند
                System.out.print("Please second interger number: ");
		b = mys.nextInt();

                //برای بررسی دو متغیرifاستفاده از درستور شرطی
		if (a > b){
                    System.out.println ("Variable a is Greater than b.");
                }
                if(a < b){
                    System.out.println ("Variable a is Lower than b.");
                }
                if(a >= b){
                    System.out.println ("Variable a is Greater than or Equal b.");
                }
                if(a <= b){
                    System.out.println ("Variable a is Lower than or Equal b.");
                }
                if(a == b){
                    System.out.println ("Variable a is Equal b.");
                }
                if(a != b){
                    System.out.println ("Variable a is not Equal b.");
                }

	}

}

موفق باشد.