با ثبت نام در سایت از مزایای اعضا بهره مند شوید!

question-closed توضیح در مورد کدی از Loop های جاوا

+3 امتیاز
46 بازدید
سوال شده آذر 13, 1393 در برنامه‌نویسی توسط Hadi_722 (27 امتیاز)
بسته شده آذر 22, 1393 توسط Hadi_722

جاوا
چرا تو کد زیر خروجی به این صورت میشه؟
تو این قسمت از کد hesamNumber <= 1000 || hadiNumber <= 1000 از || که به معنی یا هست استفاده شده که یعنی با رسیدن یکی از متغیرها به 1000 باید برنامه از Loop خارج بشه اما یکیشون از 1000 رد میشه تا متغیر بعدی برسه
ممنون میشم جواب بدین
مرسی

خروجی:

enter image description here

import java.util.Random;
public class RandomNumber {
public static void main(String[] args) {
Random randomNumber = new Random();
randomNumber.nextInt(101);
int hesamNumber;
int hadiNumber;
for (hesamNumber = randomNumber.nextInt(101), hadiNumber =
randomNumber.nextInt(101); hesamNumber <= 1000 || hadiNumber <= 1000;
hesamNumber += randomNumber.nextInt(11), hadiNumber +=
randomNumber.nextInt(11)) {
System. out.println( "Hesamnumber is " + hesamNumber + " and " + "Hadis number is " + hadiNumber);
}
if (hesamNumber > hadiNumber) {
System. out.println( "Hesam won the game and Hadi has to buy it." );
} else if (hesamNumber < hadiNumber) {
System. out.println( "Hadi won the game and Hesam has to buy it." );
} else {
System. out.println( "Now they have to think about a third solution!" );
}
}
}

&& با || خیلی فرق داره از نظر معنی
سوالم اینه که چرا اینجا برعکس عمل میکنن
یعنی اگه از || استفاده بشه نیازه هر دو شرط بر قرار باشه اما با استفاده از && فقط یکی از شرطها؟

این سوال بسته شد به دلیل: جوابمو گرفتم

1 پاسخ

+1 امتیاز
پاسخ داده شده آذر 13, 1393 توسط mohammadhzp (4,005 امتیاز)
انتخاب شده آذر 13, 1393 توسط Hadi_722
 
بهترین پاسخ

یعنی با رسیدن یکی از متغیرها به 1000 باید برنامه از Loop خارج بشه اما
یکیشون از 1000 رد میشه تا متغیر بعدی برسه

در اینجا این اتفاق زمانی باید بیفته که شما از && استفاده کنید
پس شرطو اشتباه بررسی میکنین.در اینجا داره میگه اگر یکی از شرط ها صحیح بود پس به حلقه ادامه بده(پس اگر یکی بالای ۱۰۰۰ هم باشد باز دیگری صحیح است پس ادامه میدهد)
یا باید بگین :

hesamNumber<=1000 && hadiNumber<=1000

یا باید بگین

hesamNumber>1000 || hadiNumber>1000

که من الان فکر کنم گزینه دوم به همراه یک break بهتر باشد چون که عمومی تر و قابل خوندن تر برای همه هستش(جاوا نویس نیستم)

سرور مجازی لینوکس

2,160 سوال

3,312 پاسخ

3,437 دیدگاه

9,388 کاربر

...