请问一下下面这个JAVA程序错在哪?谢谢!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问一下下面这个JAVA程序错在哪?谢谢!!相关的知识,希望对你有一定的参考价值。

public class Test2
static String[] binarise="0000","0001","0010","0011","0100","0101","0110","0111""1000","1001,"1010","1011","1100","1101","1110","1111";
static final int flag1=1;
static final int flag2=2;
static final int flag3=8;
public static void main(String[] args)
int flags=0;
System.out.println("Clear all flags...flags="+binarise[flags]);
flags=flags|flag3;
System.out.println("Clear all flag3...flags="+binarise[flags]);
flags=flags^flag1;
System.out.println("Clear all flag1...flags="+binarise[flags]);
flags=flags^flag2;
System.out.println("Clear all flag2...flags="+binarise[flags]);
int cf1=~flag1;
flags=flags&cf1;
System.out.println("Clear all flag1...flags="+binarise[flags]);
int f4=flags&flag3;
f4=f4>>>3;
System.out.println("Clear all flag3...flags="+binarise[flags]);

参考技术A 很简单:
"0111""1000" 这里少打了个逗号,应改为:"0111","1000"
"1001,"1010" 这里打错了逗号的位置和少了个双引号 ,应改为:"1001","1010"
","1111"; 最后多了个,去掉就行。
你没有对final值更改,所以只要改了上面说的程序就对了。
参考技术B 1,数组中第8个和第9个数中间缺少逗号
2,第10个数的逗号写到引号中间去了,而且还缺少引号
3,数组后面为什么有两个花括号
这是我给你运行后的结果,其实你的程序没有半点错误,都是书写错误,所以以后写代码要仔细,一点小错误也不行。出了错,要耐心的看显示的错误信息,一般的错误信息都可以帮助找到错误的位置
Clear all flags...flags=0000
Clear all flag3...flags=1000
Clear all flag1...flags=1001
Clear all flag2...flags=1011
Clear all flag1...flags=1010
Clear all flag3...flags=1010
这是不是你想得到的显示结果?本回答被提问者采纳
参考技术C 楼上俩位啊。
将变量或方法声明为final,可以保证它们在使用中不被改变。
所以说加上final的变量就相当与一个不可改变的常量。
常量参加运算是可以的。
只要是不对其赋值和修改操作因为没有问题。

这段程序的错误原因我估计是flags经过一些列的位运算后,其中的值超出数组界限了吧。
参考技术D 三楼说得有点理!
//-------------------修改调试后-------------------
public class Test2

static final int flag1 = 1;
static final int flag2 = 2;
static final int flag3 = 8;
public static void main(String[] args)

String[] binarise="0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110"+"1111";

int flags = 0;
System.out.println("Clear all flags...flags = " + flags + "=" +binarise[flags]);
flags = flags | flag3;
System.out.println("Clear all flag3...flags = " + flags + "=" + binarise[flags]);
flags = flags ^ flag1;
System.out.println("Clear all flag1...flags = " + flags + "=" + binarise[flags]);
flags = flags ^ flag2;
System.out.println("Clear all flag2...flags = " + flags + "=" + binarise[flags]);
System.out.println(b[0]);
System.out.println(binarise[0]);
int cf1 = ~flag1;
flags = flags&cf1;
System.out.println("Clear all flag1...flags = " + flags + "=" + binarise[flags]);
int f4 = flags&flag3;
f4 = f4 >>> 3;
System.out.println("Clear all flag3...flags = " + flags + "=" + binarise[flags]);



//--------貌似你在定义String[] binarise时用了非英文输入法---------
//------------------有的点方不是漏了就是多了点东西----------------
第5个回答  2008-11-27 字符串数组的“”去掉一个,还有常量是不能再更改的

C语言编译出现错误,请问错在哪? #include <stdio.h> int main()

C语言编译出现错误,请问错在哪?
#include <stdio.h>
int main()

int num;
scanf("%d\n",&num);
int i;
for(i=2;i<num;i++)
if(num%i==0);
break;
if(i<num)
printf("NO\n");
else
printf("YES\n");

return 0;

#include <stdio.h>
int main()

int num;
scanf("%d\n",&num);//\n属于画蛇添足
int i;
for(i=2;i<num;i++)
if(num%i==0);//分号不需要
break;//<-------挪到这里
if(i<num)
printf("NO\n");
else
printf("YES\n");
//<-------
return 0;//分号 输入法 请用 英文 半角
追问

scanf怎么能少呢?需要输入一个数,然后判断是不是质数。

追答

你那只眼睛看见我说的是scanf了 ,我说的的是 \n

追问

不好意思,但是改了以后,还是运行错误。

参考技术A return 0;
这句话的分号你打成中文的分号了
应该是英文的分号
望采纳追问

换成英文了,还是运行错误。

参考技术B 把break和if(i<num)都去掉追问

去掉还是不行。

参考技术C 什么意思?没用过这个软件追问

当根据第1组数据判题时:
你的答案是:NO

标准答案是:YES

如果此处显示你的答案与标准答案一致仍判错,那是因为我们只显示了标准答案中的一行,标准输出一般含有多行数据,你的某一行或某几行输出与这组标准输出不符合,请务必仔细检查代码。

计蒜客在线编程

追答

你这个break是用来做什么的

追问

跳出循环

跳出后,判断余数为0时,i和num的大小。

追答

你这个for循环执行一次就跳出来,执行不到判断啊

追问

怎么改呀

追答

你的目的是判断是不是质数吗

追问

是的

追答

把return前的花括号放到break后面,把break前的分号去掉

追问

成功了,谢谢!非常感谢!

追答

不客气

本回答被提问者采纳

以上是关于请问一下下面这个JAVA程序错在哪?谢谢!!的主要内容,如果未能解决你的问题,请参考以下文章

请问一下python程序代码错在哪里了,谢谢。是通过二分法求方程根的函数

谁可以帮我看看我这个C语言程序错在哪啊?查询成绩和统计程序都弄不出!··谢谢了

C语言编译出现错误,请问错在哪? #include <stdio.h> int main()

这个链表程序错在哪啊!

VC6怎么查找程序具体错在哪行?

请问c++这个程序中总显示着else与if不匹配,请问大家错在哪里了?