Вам не нужно do{} while();
для проверок, которые вы хотите сделать здесь, достаточно просто while(){}
циклов.
Пожалуйста, попробуйте этот код:
Ps: Если это работает, пожалуйста, не забудьте высказать мой ответ. Удачного кодирования! :)
import java.util.Scanner;
public class GuessNumber {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter name:");
if (sc.hasNextLine()) {
String userName = sc.nextLine();
System.out.println("Hello " + userName + ",");
System.out.println();
}
int secretNum = 5;
int secretNum2 = 15;
int guess = 0;
System.out.println("Guess what is the number 0 to 10: ");
if (sc.hasNextInt()) {
guess = sc.nextInt();
}
while (secretNum != guess) {
System.out.println("Please try again\n");
if (sc.hasNextInt()) {
guess = sc.nextInt();
}
}
System.out.println("Well done\n");
System.out.println("Are you ready for the next step?\n");
System.out.println("Enter Yes or No");
while (!sc.next().equals("yes") && !sc.next().equals("no"))
{
System.out.print("Yes");
}
System.out.println("Guess what is the number 11 to 20: ");
if (sc.hasNextInt()) {
guess = sc.nextInt();
}
while (secretNum2 != guess) {
System.out.println("Please try again\n");
if (sc.hasNextInt()) {
guess = sc.nextInt();
}
}
System.out.println("Congratulations");
System.out.println();
System.out.println("The End");
}
}
bdukes прав относительно событий. Но Вы не ограничены просто использованием делегатов с событиями.
Изучите классический Шаблон "наблюдатель" для большего количества примеров при использовании делегатов. Некоторый текст на шаблоне указывает на модель событий, но с точки зрения изучения сырых данных, Вы не должны использовать события.
Одна вещь помнить: делегат является просто другим типом, который может использоваться и раздаваться подобный Вашим типам примитивов, таким как "интервал". И точно так же, как "интервал", у делегата есть свои собственные специальные характеристики, что можно действовать на в кодировании при потреблении типа делегата.
Для получения действительно большого дескриптора на предмете и на части, он более совершенствуется и подробные аспекты, получите книгу Joe Duffy, Платформа.NET 2.0.
Другим быстрым примером первое, что пришло на ум было бы поблочное тестирование с Насмешками Носорога. Много вещей, которые можно сделать с Насмешками Носорога, использует делегатов и лямбда-выражения.
Ну, каждый раз, когда Вы обрабатываете событие, Вы используете делегата.
Для ответа на второй вопрос сначала я думаю, что это - большой вопрос для StackOverflow!
На первом один пример отсортировал бы. Вид () метод в Списке берет делегата, чтобы сделать сортировку, как делает Находку () метод. Я не огромный поклонник сортировки в базе данных, таким образом, мне нравится использовать Вид () на моих наборах результатов. В конце концов, порядок списка является намного больше проблемы UI (обычно), чем проблема бизнес-правила.
Править: Я добавил свои причины сортировки вне DB к соответствующему вопросу здесь.
Править: Функция сравнения, используемая в программе сортировки, является делегатом. Поэтому при сортировке Списка с помощью.Sort (Сравнение (T)) метод Сравнение (T) метод, Вы передаете функции вида, делегат. Посмотрите.Sort (Сравнение (T)) документация.
Можно использовать делегатов каждый раз, когда Вы знаете, что захотите принять некоторые меры, но детали того действия будут зависеть от обстоятельств.
Среди прочего мы используем делегатов к:
Другой пример состоял бы в том, чтобы опубликовать события для пользовательских элементов управления.
Например.
// In your user control
public delegate void evtSomething(SomeData oYourData);
public event evtSomething OnSomething;
// In the page using your user control
ucYourUserControl.OnSomething += ucYourUserControl_OnSomething;
// Then implement the function
protected void ucYourUserControl_OnSelect(SomeData oYourData)
{
...
}
Нет ничего специального для asp.net, связанного с делегатами (помимо соображений при использовании асинхронного материала, который является совершенно другим вопросом), таким образом, я укажу на Вас на другие вопросы вместо этого:
Недавно я использовал делегатов к "делегированию" проверки полномочий.
общедоступный Func CheckPermission;
Таким образом, функция CheckPermission может быть совместно использована различными средствами управления или классами, сказать это в статическом классе или классе утилит, и все еще управляться централизованная, избежав также Интерфейсного взрыва; просто мысль