Вход на сайт
вопрос по java
193
NEW 20.07.05 13:53
в книге (электронный вариант) представлен следующий текст...
import java.util.Random;
interface SharedConstants { int NO = 0;
int YES = 1;
int MAYBE = 2;
int LATER = 3;
int SOON = 4;
int NEVER = 5; }
class Question implements SharedConstants {
Random rand = new Random(,0);
int ask() {
int prob = (int) (100 * rand.nextDouble(),0);
if (prob < 30)
return NO; // 30% else if (prob < 60)
return YES; // 30% else if (prob < 75)
return LATER; // 15% else if (prob < 98)
return SOON; // 13% else
return NEVER; // 2% } }
class AskMe implements SharedConstants {
static void answer(int result) {
switch(result) {
case NO:
System.out.println("No",0);
break;
case YES:
System.out.println("Yes",0);
break;
case MAYBE:
System.out.println("Maybe",0);
break;
case LATER:
System.out.println("Later",0);
break;
case SOON:
System.out.priniln("Soon",0);
break;
case NEVER:
System.out.println("Never",0);
break;
} }
public static void main(String args[]) {
Question q = new Question(,0);
answer(q.ask(),0);
answer(q.ask(),0);
answer(q.askO,0);
answer(q.ask(),0);
} }
вопрос: что тут означает знак //?
разве это не знак комментария?
и что означает после этого знака 30% и т.п.?
если возможно прошу прокомментировать этот кусок программы,
а то мне не понятно что там реализуется и как... из-за этих 2-х символов
жизнь хороша, когда пьешь не спеша...
import java.util.Random;
interface SharedConstants { int NO = 0;
int YES = 1;
int MAYBE = 2;
int LATER = 3;
int SOON = 4;
int NEVER = 5; }
class Question implements SharedConstants {
Random rand = new Random(,0);
int ask() {
int prob = (int) (100 * rand.nextDouble(),0);
if (prob < 30)
return NO; // 30% else if (prob < 60)
return YES; // 30% else if (prob < 75)
return LATER; // 15% else if (prob < 98)
return SOON; // 13% else
return NEVER; // 2% } }
class AskMe implements SharedConstants {
static void answer(int result) {
switch(result) {
case NO:
System.out.println("No",0);
break;
case YES:
System.out.println("Yes",0);
break;
case MAYBE:
System.out.println("Maybe",0);
break;
case LATER:
System.out.println("Later",0);
break;
case SOON:
System.out.priniln("Soon",0);
break;
case NEVER:
System.out.println("Never",0);
break;
} }
public static void main(String args[]) {
Question q = new Question(,0);
answer(q.ask(),0);
answer(q.ask(),0);
answer(q.askO,0);
answer(q.ask(),0);
} }
вопрос: что тут означает знак //?
разве это не знак комментария?
и что означает после этого знака 30% и т.п.?
если возможно прошу прокомментировать этот кусок программы,
а то мне не понятно что там реализуется и как... из-за этих 2-х символов
жизнь хороша, когда пьешь не спеша...
Мы работаем ╚с огоньком╩!Городской крематорий.
NEW 20.07.05 14:10
вероятность в процентах. Это и есть сам комментарий. А "т.п." - это там, похоже, с переносом строки косяки, т.е. строки типа return LATER; // 15% else if (prob < 98) должны выглядеть так
return LATER; // 15%
else if (prob < 98)
--------------
"Ach, leck mich doch am Arsch", - lächelte meine bezaubernde kleine Fee. Und das war buchstäblich zu verstehen.
в ответ Sevaforever 20.07.05 13:53
В ответ на:
и что означает после этого знака 30% и т.п.?
и что означает после этого знака 30% и т.п.?
вероятность в процентах. Это и есть сам комментарий. А "т.п." - это там, похоже, с переносом строки косяки, т.е. строки типа return LATER; // 15% else if (prob < 98) должны выглядеть так
return LATER; // 15%
else if (prob < 98)
--------------
"Ach, leck mich doch am Arsch", - lächelte meine bezaubernde kleine Fee. Und das war buchstäblich zu verstehen.
NEW 25.07.05 23:45
в ответ Sevaforever 20.07.05 13:53
class Q {
int n;
synchronized int get() {
System.out.println("Got: " + n,0);
return n;
}
synchronized void put(int n) {
this.n = n;
System.out. println("Put: " + n,0);
} }
class Producer implements Runnable {
Q q;
Producer(Q q) {
this.q = q;
new Thread(this, "Producer").start(,0);
}
public void run() {
int i = 0;
while (true) {
q.put(i++,0);
} } }
class Consumer implements Runnable {
Q q;
Consumer(Q q) {
this.q = q;
new Thread(this, "Consumer").start(,0);
}
public void run() {
while (true) {
q.get(,0);
}
} }
class PC {
public static void main(String args[]) {
Q q = new Q(,0);
new Producer(q,0);
new Consumer(q,0);
} }
эта программа выводит на экоан цифры, но не так как нужно
в справочнике далее написан исправленный вариант:
class Q {
int n;
boolean valueSet = false;
synchronized int get() {
if (!valueSet)
try wait(,0);
catch(InterruptedException e):
System.out.println("Got: " + n,0);
valueSet = false;
notify(,0);
return n;
}
synchronized void put(int n) {
if (valueSet)
try wait(,0); catch(InterruptedException e,0);
this.n = n;
valueSet = true;
System.out.println("Put: " + n,0);
notify(,0);
} }
далее программа не дописана...
так вот у меня возник вопрос что же нужно
вставлять в операторе while()
я так понимаю что true не подходит, потому что в if стоит переменная valueset,
но ее вроде как тоже нельзя ставить, как и !valueset, т.к. по-моему в этом
случае будет работать только один из методав, а другой будет в режиме wait...
возможно это не так... прошу объяснить поподробнее, заранее благодарен
жизнь хороша, когда пьешь не спеша...
int n;
synchronized int get() {
System.out.println("Got: " + n,0);
return n;
}
synchronized void put(int n) {
this.n = n;
System.out. println("Put: " + n,0);
} }
class Producer implements Runnable {
Q q;
Producer(Q q) {
this.q = q;
new Thread(this, "Producer").start(,0);
}
public void run() {
int i = 0;
while (true) {
q.put(i++,0);
} } }
class Consumer implements Runnable {
Q q;
Consumer(Q q) {
this.q = q;
new Thread(this, "Consumer").start(,0);
}
public void run() {
while (true) {
q.get(,0);
}
} }
class PC {
public static void main(String args[]) {
Q q = new Q(,0);
new Producer(q,0);
new Consumer(q,0);
} }
эта программа выводит на экоан цифры, но не так как нужно
в справочнике далее написан исправленный вариант:
class Q {
int n;
boolean valueSet = false;
synchronized int get() {
if (!valueSet)
try wait(,0);
catch(InterruptedException e):
System.out.println("Got: " + n,0);
valueSet = false;
notify(,0);
return n;
}
synchronized void put(int n) {
if (valueSet)
try wait(,0); catch(InterruptedException e,0);
this.n = n;
valueSet = true;
System.out.println("Put: " + n,0);
notify(,0);
} }
далее программа не дописана...
так вот у меня возник вопрос что же нужно
вставлять в операторе while()
я так понимаю что true не подходит, потому что в if стоит переменная valueset,
но ее вроде как тоже нельзя ставить, как и !valueset, т.к. по-моему в этом
случае будет работать только один из методав, а другой будет в режиме wait...
возможно это не так... прошу объяснить поподробнее, заранее благодарен
жизнь хороша, когда пьешь не спеша...
Мы работаем ╚с огоньком╩!Городской крематорий.
NEW 26.07.05 18:54
в ответ Tomasson 26.07.05 10:39
нет,я пока просто читаю, потом буду практикой заниматься
а где кстати можно java писать? может какой редактор есть?
если можно - поподробней, че и где скачать нада...
жизнь хороша, когда пьешь не спеша...
а где кстати можно java писать? может какой редактор есть?
если можно - поподробней, че и где скачать нада...
жизнь хороша, когда пьешь не спеша...
Мы работаем ╚с огоньком╩!Городской крематорий.
26.07.05 18:58
в ответ Sevaforever 26.07.05 18:54
учебник по java - это не роман:-).
надо читать и сразу пробовать (+ експериментировать)
Код, написанный вверху, будет работать и со старым while.
а где кстати можно java писать? может какой редактор есть?
Для начала лучше писать в обычном Блокноте/Notepad.
А потом уже можно во всякие IDE ударяться:-)
надо читать и сразу пробовать (+ експериментировать)
Код, написанный вверху, будет работать и со старым while.
а где кстати можно java писать? может какой редактор есть?
Для начала лучше писать в обычном Блокноте/Notepad.
А потом уже можно во всякие IDE ударяться:-)
NEW 26.07.05 23:37
в ответ Tomasson 26.07.05 18:58
а че тут пробовать то? цифры чтоль выводить?
да это же смешно...
я на гребаном pascal игры писал, а ты мне предлагаешь ...
не блокнот эт не для меня, пасиб
jbilder вот достать бы... качать долго ток
жизнь хороша, когда пьешь не спеша...
да это же смешно...
я на гребаном pascal игры писал, а ты мне предлагаешь ...
не блокнот эт не для меня, пасиб
jbilder вот достать бы... качать долго ток
жизнь хороша, когда пьешь не спеша...
Мы работаем ╚с огоньком╩!Городской крематорий.


