2011-12-05 25 views
0

这是我的代码,我到目前为止有:如何在另一个私有方法中使用一种方法的return语句?

import java.util.*; 

public class VoteRecorder 
{ 
// Variables and instance variables 
public static String nameCandidatePresident1; 
public static String nameCandidatePresident2; 
public static String nameCandidateVicePresident1; 
public static String nameCandidateVicePresident2; 
public static int votesCandidatePresident1; 
public static int votesCandidatePresident2; 
public static int votesCandidateVicePresident1; 
public static int votesCandidateVicePresident2; 
private int myVoteForPresident; 
private int myVoteForVicePresident; 


public VoteRecorder() 
{ 
    nameCandidatePresident1 = "null"; 
    nameCandidatePresident2 = "null"; 
    nameCandidateVicePresident1 = "null"; 
    nameCandidateVicePresident2 = "null"; 
    votesCandidatePresident1 = 0; 
    votesCandidatePresident2 = 0; 
    votesCandidateVicePresident1 = 0; 
    votesCandidateVicePresident2 = 0; 
    myVoteForPresident = 0; 
    myVoteForVicePresident = 0;  
} 


public void setCandidatesPresident(String name1, String name2) 
{ 
    nameCandidatePresident1 = name1; 
    nameCandidatePresident2 = name2; 

} 

public void setCandidatesVicePresident(String name1, String name2) 
{ 
    nameCandidateVicePresident1 = name1; 
    nameCandidateVicePresident2 = name2; 
} 

public static void resetVotes() 
{ 
    votesCandidatePresident1 = 0; 
    votesCandidatePresident2 = 0; 
    votesCandidateVicePresident1 = 0; 
    votesCandidateVicePresident2 = 0; 
} 

public static String getCurrentVotePresident() 
{ 
    return nameCandidatePresident1 + ":" + votesCandidatePresident1 + "\n" + 
      nameCandidatePresident2 + ":" + votesCandidatePresident2; 
} 

public static String getCurrentVoteVicePresident() 
{ 
    return nameCandidateVicePresident1 + ":" + votesCandidateVicePresident1 + "\n" + 
      nameCandidateVicePresident2 + ":" + votesCandidateVicePresident2; 
} 


public void getAndConfirmVotes() 
{ 

} 


private String getVotes() 
{ 
    Scanner keyboard = new Scanner(System.in); 
    System.out.println("please vote for a President or vice president "  + nameCandidatePresident1 + ", " + nameCandidatePresident2 + ", " + nameCandidateVicePresident1 
      + " or " + nameCandidateVicePresident2); 
    String presidentVote = keyboard.nextLine(); 
    if (presidentVote.equalsIgnoreCase(nameCandidatePresident1))  
     return nameCandidatePresident1; 

    if(presidentVote.equalsIgnoreCase(nameCandidatePresident2))  
     return nameCandidatePresident1;  

    System.out.println("please vote for a Vice president " + nameCandidateVicePresident1 + " or" + nameCandidateVicePresident2); 
    String vicePresidentVote = keyboard.nextLine(); 

    if(vicePresidentVote.equalsIgnoreCase(nameCandidateVicePresident1)) 
     return nameCandidateVicePresident1; 

    if(vicePresidentVote.equalsIgnoreCase(nameCandidateVicePresident2)) 
     return nameCandidateVicePresident2; 

    else 
     return "not a valid vote"; 

} 


private boolean confirmVotes() 
{ 
    System.out.println("Your vote for President is:"); 
    System.out.println("your vote for Vice President is:"); 
    System.out.println("Is this correct? Yes or No?"); 
    Scanner keyboard = new Scanner(System.in); 
    String answer = keyboard.nextLine(); 
    if (answer.equalsIgnoreCase("Yes")) 
     return true; 
    else 
     return false; 
} 

private void recordVote() 
{ 
puscode: If confirmVotes returns true, take the nameCandidate, and ++ to votesCandidate of the same type 
Copy this If statement four times, one for each of the candidates, 2 president and 2 vp. 
Else or If confirmvotes returns false, put output saying that the votes were not confirmed. 

} 


} 

说我把所有的代码,让我们看看该方法getVotes()和confrimVotes(),在getVotes()的用户选择一个候选人,比该候选人被退回。我如何得到该返回语句以显示其他方法中的其他位置?喜欢在confirmVote()我想这样做

System.out.println("Your vote for President is: (PresidentialCandidate return statement"); 

但我该怎么做呢?

回答

5

这不是直接回答你的问题,但我认为你的代码可以通过利用一些面向对象编程的力量进行简单了很多。

您存储多种类型的信息,针对不同岗位作为独立变量约4的候选人,并且它使你的类非常笨重。

A(在我看来)更好的方法是让一个Candidate类存储有关单一候选人的信息,那么你的类可以如下所示:

class Candidate { 
    String Name; 
    int votes; 
} 

class VoteRecorder { 
    Candidate[] presidents; 
    Candidate[] vicePresidents; 

    Candidate myVoteForPresident;  //Or even make these both ints. 
    Candidate myVoteForVicePresident; 
} 

的类可以进一步完善,但这将是一个开端。无论何时,当您看到描述同一个实体的信息多次重复多次时,这就很好地表明您可以通过添加一个类来代替它们来简化您的生活。

编辑(回答问题专门):

如果你想有效地做到以下几点:

的System.out.println(“你投票选总统是:(PresidentialCandidate return语句“);

你可以写这样的事情:

String voteResult = getVotes(); 
System.out.println("Your vote for President is: " + voteResult); 

或者在同一行:

System.out.println("Your vote for President is: " + getVotes()); 

每次虽然运行这段代码时,它会提示用户进行输入。如果您想在下一次保存结果,则必须将其保存到一个属性,例如,通过在你的类中创建一个字符串,并首先为其赋值。然后,稍后使用它来代替本地变量voteResult

+0

我意识到有这个缺陷,但这是如何让任务告诉我这样做。我只需要知道我在问什么,我感谢你在提出另一个课程上的帮助,但即使我确定了,我仍然会遇到同样的问题。 – Renuz

+0

@红德龙:好的。我会更新我的答案。 –

+0

@RedDragon:我的回答已更新。 –

相关问题