基本上我正在寻找我的问题。我的ABook
课程如下:
import java.io.*;
import java.util.*;
public class ABook
{
public static void main (String args[])
{
LinkedList addressBook = new LinkedList();
Scanner input = new Scanner(System.in);
System.out.println("Would you like to add a friend? (Say Y or N)");
String reply = input.nextLine();
if(reply.equals("Y"))
{
System.out.println("What is the name of your friend?");
String name = input.nextLine();
System.out.println("What is the age of your friend?");
int age = input.nextInt();
Friend newFriend = new Friend(name,age);
addressBook.add("Name: " + newFriend.name + "; " + "Age: " + newFriend.age);
System.out.println("This is your Address Book so far: " + addressBook);
}
else if(reply.equals("N")){
System.out.println("Thank you for your time");
}
}
}
如果你需要我在这里使用的Friend
课,那就是它:
public class Friend
{
public String name;
public int age;
public Friend(String n, int a)
{
name = n;
age = a;
}
}
我不确定我是否使用“do”或“while”循环或如何使用它。如果你解释为什么或如何循环对另一个循环起作用,那将是很棒的。
谢谢。
编辑: 在我发布这个问题之前,我没有意识到这个社区的活跃程度如何,我认为我得到的答案并不像我在这么短的时间。所以,在我通过使用看起来像这样的do-while循环看到你的回复之前,我想出了我自己的方法来循环它。
import java.io.*;
import java.util.*;
public class ABook {
public static void main(String args[]) {
LinkedList addressBook = new LinkedList();
Scanner input = new Scanner(System.in);
int n = 0;
do {
System.out.println("Would you like to add a friend? (Say Y or N)");
String reply = input.nextLine();
if (reply.equals("Y")) {
System.out.println("What is the name of your friend?");
String name = input.nextLine();
System.out.println("What is the age of your friend?");
int age = input.nextInt();
Friend newFriend = new Friend(name, age);
addressBook.add("Name: " + newFriend.name + "; " + "Age: " + newFriend.age);
System.out.println("This is your Address Book so far: " + addressBook);
n++;
} else if (reply.equals("N")) {
System.out.println("Thank you for your time");
System.out.println("Would you like to know who is in your Address Book? (Say Y or N)");
String userinput = input.nextLine();
if (reply.equals("Y")) {
System.out.println("This is your Address Book so far: " + addressBook);
System.out.println("Goodbye!");
} else if (reply.equals("N")) {
System.out.println("Okay! Goodbye!");
}
n = 101;
}
} while (n < 100);
}
}
它运作良好,我甚至还要在其中使用另一个if - else语句。 我现在要做的是按照“朋友”的整数/年龄对链表进行排序,因此当我打印链表时,它可以按照从最小到最旧的顺序排序。如果有人能指出我正确的方向,那就太棒了!
无论如何,感谢所有前来帮助我的人,我希望这可以帮助其他人找到答案。
答案 0 :(得分:3)
如果要执行任务至少一次,请使用do-while
循环,无论条件是真还是假。 do-while
循环的结构是 -
do{
//do something
}while(condition);
否则使用while
循环 - 如果条件为true则执行循环。 while
循环的结构是 -
while(condition){
//do something
}
答案 1 :(得分:2)
如前所述,a&#34; do while&#34; &#34;而&#34;而&#34;循环是一个do-while循环在循环的底部执行条件,这反过来意味着将至少执行一次代码。
如果您想了解更多信息,this是一个不错的选择。
就您的代码而言。你应该使用&#34;而#34;循环,使用布尔值作为用户是否要继续添加的标志。您的代码最终会看起来像这样:
import java.io.*;
import java.io.BufferedReader;
import java.util.*;
public class ABook{
public static void main (String args[])
{
try
{
LinkedList addressBook = new LinkedList();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in) );
System.out.println("Would you like to add a friend? (Say Y or N)");
String reply = br.readLine();
boolean addMore = true;
if(reply.equals("Y")){
addMore = true;
}else if(reply.equals("N")){
addMore = false;
}
while(addMore)
{
System.out.println("What is the name of your friend?");
String name = br.readLine();
System.out.println("What is the age of your friend?");
int age = Integer.parseInt(br.readLine());
Friend newFriend = new Friend(name,age);
addressBook.add("Name: " + newFriend.name + "; " + "Age: " + newFriend.age);
System.out.println("This is your Address Book so far: " + addressBook);
System.out.println("Would you like to add a friend? (Say Y or N)");
reply = br.readLine();
if(reply.equals("Y")){
addMore = true;
}else if(reply.equals("N")){
System.out.println("Thank you for your time");
addMore = false;
}
}
System.out.println("Thank you for your time");
}catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
&#13;
那应该解决并回答你的问题。请注意&#34;扫描仪&#34;函数不允许暂停输入,因此它不适用于你需要它。
一切顺利。
请告诉我结果:)
祝你好运!答案 2 :(得分:1)
使用while循环似乎是最好的选择,尽管你也可以使用do-while。但是如果你使用do-while它会至少运行一次循环块,即使回复变量的第一个输入是&#34; Y&#34;。
String reply = input.nextLine();
while(reply.equals("Y"))
{
System.out.println("What is the name of your friend?");
String name = input.nextLine();
System.out.println("What is the age of your friend?");
int age = input.nextInt();
Friend newFriend = new Friend(name,age);
addressBook.add("Name: " + newFriend.name + "; " + "Age: " + newFriend.age);
System.out.println("This is your Address Book so far: " + addressBook);
System.out.println("Would you like to add a friend? (Say Y or N)");
String reply = input.nextLine();
}
说明:如果回复变量的第一个输入是&#34; Y&#34;控件将进入while循环。在再次检查条件之前,最后一行再次提示输入。循环中的代码将执行与&#34; Y&#34;相同的次数。为回复变量输入。