这是一项家庭作业。我必须编写一个程序,输出一个包含8个字符的文本(如果没有足够的话,添加空格,如果有太多则删除字符),然后在“|”之间添加最多30个“#”字符线,取决于给定的值。值可以是int或double,int输入范围从0到30,双倍从0.00到1.00 一个30或两倍的1.00等于30“#”字符 15或者0.50的双倍的int等于15“#”字符 输入可以是一行或多行。
示例
输入
WS2009 15
输出
WS2009 2个空格 这里 | ############### 这里有15个空格 |
这就是我到目前为止所做的事情:
包含println()
和int1
的不必要double1
和弯路是出于测试原因。
问题是,从不调用if和else if条件。我知道,因为当我尝试它时输出“int”或“dubs”永远不会出现。我究竟做错了什么?在string1 = scanner1.next();
之后,下一个元素应该是整数或双精度。是因为空间吗?
Scanner scanner1 = new Scanner(System.in);
String string1 = "";
int int1 = 0;
double double1 = 0;
while(scanner1.hasNext())
{
string1 = scanner1.next();
System.out.println(string1);
if(scanner1.hasNextInt())
{
int1 = scanner1.nextInt();
System.out.println(drawBar(string1 , int1));
System.out.println("int");
}
else if(scanner1.hasNextDouble())
{
double1 = scanner1.nextDouble();
System.out.println(drawBar(string1 , double1));
System.out.println("dubs");
}
}
答案 0 :(得分:2)
据我们所知,实际上没有任何问题 - 它应该可以正常工作。基于这种怀疑,我从pastebin编译了你的源代码并运行它,实际上,它的工作方式与预期一致。我感觉到了一个真正的头桌碰撞场景。