На этой неделе началось только обучение кода, поэтому я, вероятно, слишком сильно опережу себя, но любая помощь будет потрясающей!Попытка дать мою программу «Манеры» (JAVA Beginner)
Я работаю над тем, чтобы попытаться дать моей программе две разные черты характера: формальные и неформальные.
Я попытался сделать это, используя логические «MANNERS», которые определяют каждую ссылку после нее (включая выбор имени), потому что функции могут быть проверены на соответствие одному логическому.
Каждый раз, когда myName является ссылкой, я хочу, чтобы он выбирал, наугад; либо формальныйNameRef, либо неофициальныйNameRef, в зависимости от того, на что он установлен «Манеры».
В части, это работает, но как только я все это вместе, кажется, перестал работать ------->
общественного класса nameChoice {
//A list of formal things to call me
public static String formName(){
ArrayList<String> formNames = new ArrayList<String>();
formNames.add("Master");
formNames.add("Sir");
formNames.add("Mr Smith");
Random formalNs = new Random();
formalNs.nextInt(3);
return formNames.get(formalNs.nextInt(3));
}
//A list of informal things to call me
public static String nickName(){
ArrayList<String> nickNames = new ArrayList<String>();
nickNames.add("Ol' Fella");
nickNames.add("Buddy");
nickNames.add("Dude");
nickNames.add("Mate");
nickNames.add("John");
Random nickNs = new Random();
nickNs.nextInt(5);
return nickNames.get(nickNs.nextInt(4));
}
public static void main(String[] args){
//keeps saying "value of manners is not used"??could this be the problem??
boolean manners;
//as default, it choices a formal name
String myName;
// Спрашивает меня если я хочу, чтобы быть формальным (имеют «манеры»)
System.out.println("Do you want me to be formal?");
Scanner formal = new Scanner(System.in);
String formalInput = formal.next();
//If formal, turn manners ON
if (formalInput.equals("yes")||formalInput.equals("yep")){
manners = true;
}
//If informal, turn manners OFF
else {manners = false;};
//If manners are ON, choose random name from formName()
if (manners = true){
myName = formName();
}
//Else choose from nickName()
else{myName = nickName();};
System.out.println("Hello " + myName + ", how are you?");
Scanner feeling = new Scanner(System.in);
String feelingInput = feeling.next();
if (feelingInput.equals("dunno")){
System.out.println("Huh..");
}
else{
System.out.println("Interesting...how much sleep have you had " + myName + "?");
System.out.println(myName);
System.out.println(myName);
}
}
}
Если он говорит: «Чувак» в первый раз, он всегда говорит: «Чувак». Если в первый раз он говорит «Сэр», он всегда говорит «Сэр». (не то, что я хочу, я пытаюсь выбрать другое имя каждый раз из того же массива)
Я предполагаю, что мне нужно что-то помещать в какую-то петлю, чтобы она не собиралась выбирать имена наугад, но я понятия не имею, где. Я хотел бы знать. TY
@DJmendy Я не уверен, что вы имеете в виду, я вставил выше рабочего код, который вы можете копировать/вставить и попробовать. Обратите внимание, что я случайно сказал 'length', когда в этом случае он должен был быть' size() '. Если этот ответ был полезен и отвечает на ваш вопрос, можете ли вы пометить его как ответ? Я хотел бы получить несколько моментов, чтобы я мог помочь больше людей, будучи новыми, и все, что я даже не могу комментировать, если я не отправляю ответ haha – JordanGS
Yep thanks :) Я удалил свой комментарий, потому что это сбивало с толку даже для меня. Да, он не работал с .length, поэтому после быстрого google я переключил его на .size(). Наверное, это потому, что это был массив. Спасибо за вашу помощь! – DJmendy