- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的主菜单中只允许有 4 个选项,而我创建了 5 个选项。我不知道如何将最后 2 个输出语句正确地放在一起,以便可以从另一个输出语句的内部调用一个选项。因此他们都可以使用相同的菜单选项。
选项 3 和 4 需要以某种方式位于彼此内部,以便我可以显示输入的所有联系人的姓名,然后提示用户选择联系人 ID 以显示该联系人的其余详细信息。
已尝试将两者合并到一个 if 语句中,但它无法正确显示添加的第二个联系人的全名。它会再次显示名字,然后要求提供联系人 ID 以显示详细信息。如果您显示详细信息,则将返回正确的详细信息以及最后输入的联系人的名字和姓氏。
这是当它们分开时我所拥有的:
package ooo1;
import java.util.ArrayList;
import java.util.Scanner;
public class ContactList {
public static void main(String[] args) {
ArrayList<Contact> contacts = new ArrayList<>();
Scanner input1 = new Scanner(System.in);
int type = 0;
while(type != 5){
System.out.println("Please select an option: ");
System.out.println("Add a Personal Contact: Enter 1 ");
System.out.println("Add a Business Contact: Enter 2 ");
System.out.println("Display Contacts List: Enter 3 ");
System.out.println("Display Contact Details: Enter 4 ");
System.out.println("To Quit: Enter 5 ");
type = input1.nextInt();
if(type == 5){
System.out.println("Goodbye ");
break;
}
if (type == 1 || type == 2){
Contact contact = null;
Scanner input = new Scanner(System.in);
System.out.println("Please enter ContactId : ");
String contactId = input.nextLine();
System.out.println("Please enter First Name : ");
String firstName = input.nextLine();
System.out.println("Please enter Last Name : ");
String lastName = input.nextLine();
System.out.println("Please enter Address in the following format : ");
System.out.println("Street Address, City, State, Zip Code");
String address = input.nextLine();
System.out.println("Please enter Phone Number : ");
String phoneNumber = input.nextLine();
System.out.println("Please enter Email Address : ");
String emailAddress = input.nextLine();
//Create a personal contact.
if(type == 1){
System.out.println("Please enter Birthday: ");
String dateofBirth = input.nextLine();
Contact pcontact = new PersonalContact(contactId, firstName, lastName, address, phoneNumber, emailAddress, dateofBirth);
contacts.add(pcontact);
System.out.println("Contact Added Successfully");
System.out.println();
}
//Create a business contact.
else if(type == 2){
System.out.println("Please enter Job Title: ");
String jobTitle = input.nextLine();
System.out.println("Please enter Organization: ");
String organization = input.nextLine();
Contact bcontact = new BusinessContact(contactId, firstName, lastName, address, phoneNumber, emailAddress, jobTitle, organization);
contacts.add(bcontact);
System.out.println("Contact Added Successfully");
System.out.println();
}
}
if (type == 3 || type == 4){
//Print full name of each Contact.
if(type == 3){
for (Contact namecontact: contacts)
{
System.out.println(namecontact.displayFullName());
System.out.println();
}
}
//Print contact details for selected contact.
else if(type == 4){
System.out.println("Enter a Contact ID to display Contact Details: ");
Scanner input2 = new Scanner(System.in);
String soughtID;
soughtID = input2.nextLine();
for (Contact showcontact1: contacts)
{
if (showcontact1.displayId().equals(soughtID))
System.out.println(showcontact1.displayContact());
System.out.println();
}
}
}
}
}
}
这是他们调用的父类:
package ooo1;
public abstract class Contact {
String contactId;
String firstName;
String lastName;
String address;
String phoneNumber;
String emailAddress;
public Contact(String contactId,String firstName,String lastName, String address, String phoneNumber, String emailAddress)
{
this.contactId = contactId;
this.firstName = firstName;
this.lastName = lastName;
this.address = address;
this.phoneNumber = phoneNumber;
this.emailAddress = emailAddress;
}
public void setContactId(String input){
this.contactId = input;
}
public String getContactId(){
return contactId;
}
public void setFirstName(String input){
this.firstName = input;
}
public String getFirstName(){
return firstName;
}
public void setLastName(String input){
this.lastName = input;
}
public String getLastName(){
return lastName;
}
public void setAddress(String input){
this.address = input;
}
public String getAddress(){
return address;
}
public void setPhoneNumber(String input){
this.phoneNumber = input;
}
public String getPhoneNumber(){
return phoneNumber;
}
public void setEmailAddress(String input){
this.emailAddress = input;
}
public String getEmailAddress(){
return emailAddress;
}
@Override
public String toString(){
return ("ContactID: " + this.getContactId() + "\nFirst Name: " + this.getFirstName() + "\nLast Name: " + this.getLastName() + "\nAddress: " + this.getAddress() + "\nPhone Number: " + this.getPhoneNumber() + "\nEmail Address " + this.getEmailAddress());
}
public String displayFullName(){
return ("ContactID: " + this.getContactId() + "\nFirst Name: " + this.getFirstName() + "\nLast Name: " + this.getLastName());
}
public String displayContact(){
return ("ContactID: " + this.getContactId() + "\nFirst Name: " + this.getFirstName() + "\nLast Name: " + this.getLastName() + "\nAddress :" + this.getAddress() + "\nPhone Number :" + this.getPhoneNumber() + "\nEmail Address " + this.getEmailAddress());
}
public String displayId(){
return (this.getContactId());
}
}
这是我试图在 main 中更改的内容,以摆脱其他选项,但结果不好:
如果(类型== 3){ 对于(联系人姓名contact:联系人) { System.out.println(namecontact.displayFullName()); System.out.println(); System.out.println("输入联系人 ID 以显示联系人详细信息:"); 扫描仪输入2 = new Scanner(System.in); 字符串查找ID; SeedID = input2.nextLine(); 对于(联系人 showcontact1:联系人) { if (showcontact1.displayId().equals(soughtID)) System.out.println(showcontact1.displayContact()); System.out.println();
以下是更改之前的输出(正常)和更改后的输出。
这是我更改之前的内容,除了主菜单中的选项太多之外,这没什么问题。
请选择一个选项:添加个人联系人:输入 1添加业务联系人:输入 2显示联系人列表:输入 3显示联系方式:输入 4退出:输入 53联系人ID: 2名字: 汤姆姓氏:琼斯
请选择一个选项:添加个人联系人:输入 1添加业务联系人:输入 2显示联系人列表:输入 3显示联系方式:输入 4退出:输入 54输入联系人 ID 以显示联系人详细信息:2个人联系:联系人ID: 2名字: 汤姆姓氏: 琼斯地址:西街234号电话号码:123-345-2345电子邮件地址 tjones@www.com出生日期:1893年12月12日
这就是我将两者放在一起时发生的情况。它需要新的进入。简·史密斯也加入了。当我输入 3 显示联系人时。我希望它把简和汤姆还给我,但它却把汤姆还给了我。当我询问汤姆的详细信息时,我得到了汤姆的详细信息,但我也得到了我之前想要的简的名字和姓氏。
请输入联系方式:1请输入名字:简请输入姓氏:史密斯请按以下格式输入地址:街道地址、城市、州、邮政编码234 霍华德街请输入电话号码:123-235-2345请输入电子邮件地址:jsmith@yahoo.com请输入生日:1978年12月12日联系人添加成功
请选择一个选项:添加个人联系人:输入 1添加业务联系人:输入 2显示联系人列表:输入3
退出:输入 53联系人ID: 12名字: 汤姆姓氏: 霍恩斯
输入联系人 ID 以显示联系人详细信息:12个人联系:联系人ID: 12名字: 汤姆姓氏: 霍恩斯地址:南街234号电话号码:234-232-2356电子邮件地址 thones@www.com出生日期:45年12月12日
联系人 ID:1名字: 简姓氏:史密斯
最佳答案
因此,如果我理解正确,您希望嵌套选项 3 和 4,以便选项 3 显示所有联系人,然后选择显示特定联系人:
// Other menu code here...
System.out.println("Query Contacts: Enter 3");
System.out.println("To Quit: Enter 4");
// Other code here...
// Bring up sub-menu
// Feel free to extend to return to main menu etc.
if (type == 3){
while (true) {
System.out.println("List Contacts: Enter 1");
System.out.println("Display Contact Details: Enter 2");
System.out.println("To Quit: Enter 3");
// If you need, store in another int etc.
type = input1.nextInt();
//Print full name of each Contact.
if (type == 1) {
for (Contact namecontact: contacts) {
System.out.println(namecontact.displayFullName());
System.out.println();
}
}
//Print contact details for selected contact.
else if(type == 2){
System.out.println("Enter a Contact ID to display Contact Details: ");
Scanner input2 = new Scanner(System.in);
String soughtID;
soughtID = input2.nextLine();
for (Contact showcontact1: contacts) {
// Although correct, I'd recommend you add a braces for if statements
// Saving a line for a closing brace is not generally worth it
if (showcontact1.displayId().equals(soughtID))
System.out.println(showcontact1.displayContact());
System.out.println();
}
} else if (type == 3) {
break;
}
}
}
关于java - 组合两个 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21716117/
我有一个 mysql 表,其中包含一些随机数字组合。为简单起见,以下表为例: index|n1|n2|n3 1 1 2 3 2 4 10 32 3 3 10 4 4
我有以下代码: SELECT sdd.sd_doc_classification, sdd.sd_title, sdd.sd_desc, sdr.sd_upl
如果我有两个要合并的数据框 Date RollingSTD 01/06/2012 0.16 01/07/2012 0.18 01/08/2012 0.17 01/09/20
我知道可以使用 lein ring war 创建一个 war 文件,但它似乎仍然包含码头依赖项。当我构建 war (并在 tomcat 上部署)时,有没有办法排除码头依赖项? 如果我根本不能做这件事,
维基百科关于封装的文章指出: “封装还通过防止用户将组件的内部数据设置为无效或不一致的状态来保护组件的完整性” 我在一个论坛上开始讨论封装,在那里我问你是否应该始终在 setter 和/或 gette
对于我使用的组合框内的复选框: AOEDComboAssociationName = new Ext.form.ComboBox({ id: 'AOEDComboAssociationName',
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How do I combine LINQ expressions into one? public boo
如何在 rust 中找到排列或组合的数量? 例如C(10,6) = 210 我在标准库中找不到这个函数,也找不到那里的阶乘运算符(这就足够了)。 最佳答案 以@vallentin 的回答为基础,可以进
我有一个复杂的泛型类型用例,已在下面进行了简化 trait A class AB extends A{ val v = 10 } trait X[T<:A]{ def request: T }
如何使用 Hibernate 限制来实现此目的? (((A='X') and (B in('X',Y))) or ((A='Y') and (B='Z'))) 最佳答案 思考有效 Criteria c
我一定会在我的一个项目中使用谷歌图表。我需要的是,显示一个条形图,并且在条形图中,与每个条形相交的线代表另一个值。如果您查看下面的 jsfiddle,您会发现折线图仅与中间的条形图相交,并继续向其他条
只是一个简单的问题,我也很想得到答案,因为我不能百分百理解 Javascript 示例:假设您提示用户输入名称。够简单吧?但是你有一个数组,上面写着一些名字(其中之一就是),基本上就是我到目前为止所说
我试图通过 Haskell 理解函数式编程,但在处理函数组合时遇到了很多麻烦。 其实我有这两个功能: add:: Integer -> Integer -> Integer add x y = x
我正在寻找一种在 Realm 查询中组合 AND 和 OR 的方法。 这是我的课: class Event extends RealmObject { String id; String
例如,我有一个包含 5 个元素的哈希: my_hash = {a: 'qwe', b: 'zcx', c: 'dss', d: 'ccc', e: 'www' } 我的目标是每次循环哈希时都返回,但没
我是Combine 的新手,我想得到一个看似简单的东西。假设我有一个整数集合,例如: let myCollection = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 我想以例如 0
关于“优先组合而不是继承”的问题,我的老师是这样说的: 组合:现有类成为新类的组件 转发:新类中的每个实例方法,在现有类的包含实例上调用相应的方法并返回结果 包装器:新类封装了现有的 这三个概念我不是
我正在尝试将单个整数从 ASCII 值转换为 0 和 1。相关代码如下所示: int num1 = bin.charAt(0); int num2 = bin.charAt(1);
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 7 年前。 我经常看到“嵌套”类中的非静态变
我尝试合并两个数据集(DataFrame),如下所示: D1 = pd.DataFrame({'Village':['Ampil','Ampil','Ampil','Bachey','Bachey',
我是一名优秀的程序员,十分优秀!