java中错误: 非法的表达式开始

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中错误: 非法的表达式开始相关的知识,希望对你有一定的参考价值。

以下是我写的程序的一部分:

System.out.println("Enter‘m’or‘M’for Menu,‘q’or‘Q’for finalStats" );//prompt the user for a choice
choice1=scan1.next();
switch(choice1)

case "q":
case "Q":
finalStats(times_for_l,times_for_e,times_for_d,times_for_s,times_for_r,times_for_q,times_for_others);
.......................................

……………………
public static void finalStats(int times_for_l,int times_for_e,int times_for_d,int times_for_s,int times_for_r,int times_for_q,int times_for_others) //程序显示这行有错,:“非法的表达式开始”

............................


但这行有什么错呢?

参考技术A public static void finalStats,不是主函数不能这样写
public void finalStats追问

是应该不加static对吗?

追答

用static声明的方法是静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。

追问

  但在compiled以后还是有错误提示啊?
  167:public void finalStats(int times_for_l,...,int times_for_others)

  hongyichen.java:167: 错误: 非法的表达式开始
  hongyichen.java:167: 错误: 需要';'
  hongyichen.java:167: 错误: 不是语句
  …?

  但在compiled以后还是有错误提示啊?
  167:public void finalStats(int times_for_l,...,int times_for_others)

  hongyichen.java:167: 错误: 非法的表达式开始
  hongyichen.java:167: 错误: 需要';'
  hongyichen.java:167: 错误: 不是语句
  …?

?

追答

提示167行出错,也可能是前面一行写的不对. 你 finialStats 函数前面写对了吗? 直接用eclipse写多好? 自动纠错。

比如像下边,就能运行

public class test

static int t1=1;
static int t2=2;
static int t3=3;
static String t4;
static String t5="ABCD";
static int t6=7;
public static void main(String[] args)

System.out.println("only for test");
t4=t5.substring(t3);

switch(t4)
case "C":
System.out.println("k");
break;
case "D":
System.out.println("here");
break;

finialStats(t1, t2, t3);
System.out.println("t6="+t6);



public static void finialStats(int t1, int t2, int t3)
t6=t1+t2+t3;


本回答被提问者采纳
参考技术B scan1.next();返回的是String类型的,但是swich(arg),只允许arg为int或者char类型的,您的case "q",也是错误的,只能是case 'q',这样 参考技术C 如果是jre6,switch中不允许字符串。

出错原因,可能是和()等不匹配
参考技术D switch(choice1)中的choice1只能是int值或枚举变量,不能用String类型

以上是关于java中错误: 非法的表达式开始的主要内容,如果未能解决你的问题,请参考以下文章

java中非法的表达式开始

java非法的表达式开始

错误表达式的非法开始

非法的表达式的开始

java报错说方法语句是非法表达式的开始,需要:求大神指导!

在类/表达式的非法开始中找不到主要方法