我是Java的新手,所以如果这是一个很小的错误,请原谅我,这是
我的代码:
import java.io.*;
public class election
{
public static void main(String args[])
{
boolean x=false;
Ballot ballot=new Ballot();
int n;
while(x!=true)
{
System.out.println("Cast your vote to(1-5): ");
try
{
n=System.in.read();
System.out.flush();
ballot.add(n);
System.out.println("Enter 0 to exit, enter 1 to vote again: ");
n = System.in.read();
if(n==0)
{
x=true;
}
else
{
x=false;
}
}
catch(IOException e)
{
System.out.println("I/O Error");
System.exit(1);
}
}
}
}
class Ballot
{
int votes,spoilt;
int cand[] = new int[5];
//methods
void add(int n)
{
votes=votes+1;
if(n <= 5 && n>=1)
{
cand[n-1]=cand[n-1]+1;
}
else
{
spoilt = spoilt + 1;
}
}
void display()
{
System.out.println("Total votes cast: " + votes);
for(int i=0;i<5;i++)
{
System.out.println("Candidate " + (i+1) + ": " + cand[i]);
}
System.out.println("Spoilt: " + spoilt);
System.out.println("Valid votes: " + (votes-spoilt));
}
Ballot()
{
votes=0;
spoilt=0;
for(int i=0;i<5;i++)
{
cand[i]=0;
}
}
}
当我在编译后运行它时,第18行(n = System.in.read())被跳过。
我得到的输出是这样的:
对(1-5)投票:
1输入0退出,再次输入1投票:
对(1-5)投票:
2输入0退出,再次输入1投票:
对(1)投票-5):
^ C
的值n
not read()
会使程序成为无限循环。
谢谢您的帮助。
我认为,如果您使用Scanner类,会更容易。您可以像这样实例化扫描程序对象Scanner scan = new Scanner(System.in);
。然后,第18行可以变成“ n = scan.nextInt();
这应该正确读取用户输入”。有关Scanner类的更多信息,请参见Java文档:http
:
//docs.oracle.com/javase/6/docs/api/java/util/Scanner.html。希望这会有所帮助。
问题内容: 出于某种原因,每当我在循环使用时按一下该键,此后的代码将立即执行两次。如果不在循环中,它将执行一次!为什么是这样? 这是一个测试它的代码片段: 问题答案: 发生这种情况的原因是,当您按Enter键时,System.in.read()将注册两个字符。应该将其用作扫描仪的更复杂版本,而不是使用扫描仪来执行Scanner.nextLine()或Scanner.nextInt()来返回字符串或
问题内容: java中有什么用? 请解释一下。 问题答案: 可能这个例子会帮助您。
我尝试使用system.in.read()来获取用户的年龄。我的问题是,如果我写“24”,它会给我输出“你50岁了”。我搜索了一下,发现这和编码有关。所以24映射为50。 有人建议将integer转换为char。所以应该管用。但这一次当我把24,我得到的答案是“你2岁”。 小注:“alter”在德语中是年龄的意思。 我希望有人能帮助我,理解这个问题。如果我能改进什么,请告诉我。不胜感激。
我有一个使用S3存储桶的Spring启动应用程序。根据亚马逊(https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/java-dg-roles.html),订单应该是: 在系统环境变量中:AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY。 在 Java 系统属性中:“aws.access 密钥 Id”和
问题内容: 当我需要获取电子来读取本地文件时,我有一个电子项目。 现在我所拥有的就是它,它在其中加载并显示html文件的内容。 我只需要它来读取文件并将其存储在变量上。 这是我当前的main.js: 我如何做到这一点,因为它没有在console.log中显示README.md文件的内容 问题答案: 基本上,您需要执行以下操作。 1.加载所需的依赖项 2.读取文件内容 3.更新现有文件内容 欲了解更
问题内容: 我在使用npm时遇到问题,无法安装任何程序。这是错误消息: 知道为什么吗?这是我的网络设置,似乎我没有配置任何代理。我还禁用了所有防火墙。 问题答案: 用 因此npm要求url而不是。 然后尝试相同的命令