String g = String.valueOf(f);这句代码到底哪里错了。。。
importjava.lang.String;publicclasstransport{publictransport(doublex){inty=(int)x;int[...
import java.lang.String;
public class transport {
public transport(double x){
int y=(int)x;
int[] a = new int[100];
int index=0;
while (y!=1){
a[index]=y%2;
y=y/2;
index++;
}
int[] b=new int[100];
b[0]=1;
int k=0;
for(int i=index+1;i>0;i--){
b[i]=a[k];
k++;
}
String c = String.valueOf(b);
double z=x-y;
int[] f=new int[10];
int e=0;
while(true){
z=z*2;
int d=(int)z;
f[e]=d;
e++;
}
String g = String.valueOf(f); //eclipse一直显示这行代码有问题。。。 unreachable code
}
} 展开
public class transport {
public transport(double x){
int y=(int)x;
int[] a = new int[100];
int index=0;
while (y!=1){
a[index]=y%2;
y=y/2;
index++;
}
int[] b=new int[100];
b[0]=1;
int k=0;
for(int i=index+1;i>0;i--){
b[i]=a[k];
k++;
}
String c = String.valueOf(b);
double z=x-y;
int[] f=new int[10];
int e=0;
while(true){
z=z*2;
int d=(int)z;
f[e]=d;
e++;
}
String g = String.valueOf(f); //eclipse一直显示这行代码有问题。。。 unreachable code
}
} 展开
1个回答
展开全部
有用NetBeans看啦下,一样有问题,你可把这句提到while上面,或把
while(true)死循环改过while(e<10),或在while中加个break,试试:
public class transport {
public transport(double x) {
int y = (int) x;
int[] a = new int[100];
int index = 0;
while (y != 1) {
a[index] = y % 2;
y = y / 2;
index++;
}
int[] b = new int[100];
b[0] = 1;
int k = 0;
for (int i = index + 1; i > 0; i--) {
b[i] = a[k];
k++;
}
String c = String.valueOf(b);
double z = x - y;
int[] f = new int[10];
int e = 0;
String g = String.valueOf(f);
while (true) { //while(e<10){
z = z * 2;
int d = (int) z;
f[e] = d;
e++;
// break;
}
// String g = String.valueOf(f);
// int g=2;
}
}
可见,造成错误的原因是while(true)死循环,下面的语句就无法执行到,在NetBeans中提示“无法访问的语句”,你还可以把这句注释掉写个int g=2;看看效果。。。
while(true)死循环改过while(e<10),或在while中加个break,试试:
public class transport {
public transport(double x) {
int y = (int) x;
int[] a = new int[100];
int index = 0;
while (y != 1) {
a[index] = y % 2;
y = y / 2;
index++;
}
int[] b = new int[100];
b[0] = 1;
int k = 0;
for (int i = index + 1; i > 0; i--) {
b[i] = a[k];
k++;
}
String c = String.valueOf(b);
double z = x - y;
int[] f = new int[10];
int e = 0;
String g = String.valueOf(f);
while (true) { //while(e<10){
z = z * 2;
int d = (int) z;
f[e] = d;
e++;
// break;
}
// String g = String.valueOf(f);
// int g=2;
}
}
可见,造成错误的原因是while(true)死循环,下面的语句就无法执行到,在NetBeans中提示“无法访问的语句”,你还可以把这句注释掉写个int g=2;看看效果。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询