我是Java的新手程序员(或至少试图成为一名),我的代码存在一些问题。
这首歌叫99瓶啤酒,从99到0,然后停止。代码:
public class 99bottles {
public static void main (String[] args) {
String word = "bottles";
x bottle = 99;
for (int i==0; i<99; i--) {
if (i == 1) {
word = "bottle";
}
System.out.println();
System.out.println(i+ "Bottles of beer on the wall, " + i + " bottles of beer.");
int y = i - 1 ;
System.out.println("Take one down and pass it around, " + y + " bottles of beer on the wall.");
}
}
}
然而,只要我尝试编译它,我就会收到看似不合逻辑的错误。 这里 Screenshot
在决定前往这里寻求帮助之前,我正把头靠在墙上。
答案 0 :(得分:1)
您的代码中存在大量语法错误:
x
似乎不是有效类型:x bottle = 99;
for
圈中的错误条件:int i==0
还有语义错误:
for (int i==0; i<99; i--)
- 从0递减并检查是否小于99,这是一个无限循环答案 1 :(得分:1)
您需要对代码进行一些更改:
您可以删除:
x bottle = 99;
你的循环应该是for (int i = 99; i > 0; i--) {
将变量传递给println
语句:
System.out.println(i + " " + word + " of beer on the wall, " + i + " " + word + " of beer.");
答案 2 :(得分:0)
两次更改(未检查代码的逻辑):
1)x bottle = 99;
至int bottle = 99;
2)for (int i==0; i<99; i--)
至for (int i=0; i<99; i--)
==
表示比较,=
用于指定值
x bottle = 99
定义您需要使用类型的变量。
<强> 编辑: 强>
班级名称不能以数字
开头答案 3 :(得分:0)
以下是您尝试执行的清理版本:
for (int i = 99; i > 0; i--) {
String bottle = "bottle" + i > 1 ? "s" : "";
System.out.println(i + bottle + " of beer on the wall, " + i + bottle + " of beer.");
System.out.println("Take one down and pass it around, " + y + bottle + " of beer on the wall.");
}
您当前的代码充满了问题,包括:
i == 0
没有为循环计数器赋值,它会对它进行比较;而是使用i = 0
x bottle = 99;
这似乎只是悬而未决的代码,你的代码甚至不应该立即编译bottle
这个词需要单数的边缘情况;但你从来没有完全实现它,q.v。上面的代码片段是一种可行的方法答案 4 :(得分:0)
以下是您的工作代码:(只需复制并使用!)
public static void main (String[] args) {
String word = "bottles";
// x bottle = 99;
for (int i=0; i<=99; i++) {
if (i == 1) {
word = "bottle";
}
System.out.println();
System.out.println((99-i)+ " Bottles of beer on the wall, " + (99-i) + " bottles of beer.");
int y =99 - 1 ;
System.out.println("Take one down and pass it around, " + y + " bottles of beer on the wall.");
}
}
答案 5 :(得分:0)
Luke非常好answer,请仔细检查循环条件。
for (int i = 0 ; i < 99 ; i--)
表示你从一个整数&#39; 0&#39;开始,然后你继续递减0,直到i
不小于99.但是如果你继续减少0,你将永远得到一个小于99的数字,因此你的结束条件永远不会实现。
您可以做两种选择:
for (int i = 0; i < 99 ; i++)
或
for (int i = 99; i > 0 ; i--)
这主要是语法或语义相关的错误,如卢克所说。