有人知道我在执行这段java代码时做错了什么吗?
我只是尝试执行一些Java代码并将它们打印到控制台,然而,当我尝试运行它时,它给出了一个错误,并表示非法启动表达式。有人知道这里发生了什么吗有人知道我在执行这段java代码时做错了什么吗?,java,Java,我只是尝试执行一些Java代码并将它们打印到控制台,然而,当我尝试运行它时,它给出了一个错误,并表示非法启动表达式。有人知道这里发生了什么吗 package com.craneai; public class Main { public static void main(String[] args) { public static void int F(int N) { int X, Y, Z, I; int
package com.craneai;
public class Main {
public static void main(String[] args) {
public static void int F(int N) {
int X, Y, Z, I;
int X = 2;
if(N <= 0) {
X = 3;
} else {
Y = 1;
Z = 1;
for (int I = 3; I <=N; I++) {
X = Y + Z;
Z = Y;
Y = X;
}
}
return X;
}
System.out.println(F(6));
System.out.println(F(0));
System.out.println(F(1));
}
}
package com.craneai;
公共班机{
公共静态void main(字符串[]args){
公共静态无效int F(int N){
int X,Y,Z,I;
int X=2;
如果(N)
2.方法应在主方法之外
3.您在代码中声明了两次X
,第二次调用时,您不必声明类型,编译器将尝试将其作为一个新变量处理,该变量的名称已在使用中
4.在您的for
方法中,您声明了X
,Java再次区分大小写,因此X
和X
在编译器中是不同的
5.您还声明了两次I
,在调用for
方法之前不需要提供临时变量,因为您可以在for
循环中执行
看起来您已经开始学习Java了,这是自Java 5以来使用Java的人提供的一些提示
- 不要用一个字母来声明变量
- 不要用一个字母来声明函数/方法
- 不要用大写、小写和小写来声明变量
即使作为一个例子,你应该使你的代码更干净,提高其他人的可读性,如果你这样做,其他人将来会更快乐(包括你自己).首先:您正在另一个方法中声明一个方法-请查看F
方法在main
方法中。Java不支持嵌套方法
第二:您两次声明X
和I
第三:您在方法中编写了两种返回类型:void
和int
这将有助于:
public class Main {
public static void main(String[] args) {
System.out.println(F(6));
System.out.println(F(0));
System.out.println(F(1));
}
public static int F(int N) {
int X, Y, Z, I;
X = 2;
if (N <= 0) {
X = 3;
} else {
Y = 1;
Z = 1;
for (I = 3; I <= N; I++) {
X = Y + Z;
Z = Y;
Y = X;
}
}
return X;
}
}
公共类主{
公共静态void main(字符串[]args){
系统输出println(F(6));
系统输出println(F(0));
系统输出println(F(1));
}
公共静态整数F(整数N){
int X,Y,Z,I;
X=2;
如果(N3个主要错误:
嵌套方法:F
methodinsidemain
方法F返回int
和void
你申报了两次X和我
这是你的班级:
public class Main {
public static void main(String[] args) {
System.out.println(F(6));
System.out.println(F(0));
System.out.println(F(1));
}
public static int F(int N) {
int X = 2, Y, Z;
if (N <= 0) {
X = 3;
} else {
Y = 1;
Z = 1;
for (int I = 3; I <= N; I++) {
X = Y + Z;
Z = Y;
Y = X;
}
}
return X;
}
}
Java没有嵌套的方法。将方法F()
移出main()
。另外,尽管技术上不是必需的,但一定要遵循标准的Java命名约定:方法以驼峰大小写命名,首字母为小写字母。你已经像I和XB一样声明了两次变量,但为什么要这样做呢?只需将代码放在IDE中
好了,伙计们,我将方法移出了main,并更新了帖子为了展示我所拥有的。它现在说的是identifier expected。在您尝试再次运行代码之前,有一些事情需要解决,请检查下面我提供的答案,我列出了一些您遗漏的小事情,还有更多。@Kennyman335您试图在for
循环中重新分配I
的值,或者只是忘记更改e到小写的i
?我在做什么?你在循环中看到i的重新分配在哪里?我删除了先前声明的变量i的声明,该声明与其他变量一起声明,然后仅使用for声明和初始化i(这是for的工作方式)另外,我没有忘记小写:Java是区分大小写的,我只是使用所有大写,以避免对已经编写的代码进行太多更改。哦,对了,对不起,我对错误的答案发表了评论。呵呵,不用担心:)如果你认为可以,请投赞成票。
public class Main {
public static void main(String[] args) {
System.out.println(F(6));
System.out.println(F(0));
System.out.println(F(1));
}
public static int F(int N) {
int X, Y, Z, I;
X = 2;
if (N <= 0) {
X = 3;
} else {
Y = 1;
Z = 1;
for (I = 3; I <= N; I++) {
X = Y + Z;
Z = Y;
Y = X;
}
}
return X;
}
}
public class Main {
public static void main(String[] args) {
System.out.println(F(6));
System.out.println(F(0));
System.out.println(F(1));
}
public static int F(int N) {
int X = 2, Y, Z;
if (N <= 0) {
X = 3;
} else {
Y = 1;
Z = 1;
for (int I = 3; I <= N; I++) {
X = Y + Z;
Z = Y;
Y = X;
}
}
return X;
}
}
8
3
2