java 报错无法访问语句

import java.util.Random;public class Question4{ public static void main(String[] args) { float x1=0; float x2=0; System.out.println("The coefficients of the function f(x)=a*x^2+b*x+c are:"); Random randomObj=new Random(); float a =randomObj.nextFloat(); System.out.println("a="+a); float b =randomObj.nextFloat(); System.out.println("b="+b); float c =randomObj.nextFloat(); System.out.println("c="+c); double d =Math.pow(b,2)-4*a*c; System.out.println("The equation f(x)=0 is quadratic with complex solutions:"); if (a==0) { if (b==0) { if(c==0) System.out.print( "Equation is trivial"); else System.out.print("No solution"); return; } else { System.out.print(x1=x2=-c/b); return; } } else { if (d<0) { System.out.println((double)x1==(-b+Math.sqrt(Math.pow(b,2)-4*a*c))/2/a); System.out.println((double)x2==(-b-Math.sqrt(Math.pow(b,2)-4*a*c))/2/a); return; } if(d==0) System.out.println(x1=x2=-b/(2*a)); return; if(d>0) { System.out.println((double)x1==(-b+Math.sqrt(d)/(2*a))); System.out.println((double)x2==(-b-Math.sqrt(d)/(2*a))); } } if (x1!=x2) { System.out.println("Check:"); System.out.println("\t"+"f(x1)="+Math.pow((a*x1),2)+b*x1+c+"\n"+"f(x2)="+Math.pow((a*x2),2)+b*x2+c); return; } else System.out.println(" ");
}
}

第1个回答  2013-10-05
if(d==0)
System.out.println(x1=x2=-b/(2*a));
return;
这几句,没有加括号,所以return已经脱离了if语句了,程序执行到这里就返回了,后面的语句无法访问了。改成这样就可以了:

if(d==0){
System.out.println(x1=x2=-b/(2*a));
return;}
第2个回答  2013-10-05
 if(d==0)
   System.out.println(x1=x2=-b/(2*a));
 return; 

// 因为上面的return,以下代码永远不会运行,是不是应该改成
// if(d==0) {
//   System.out.println(x1=x2=-b/(2*a));
//   return; 
// }
 
 if(d>0)
 {

追问

运行起来还是不对的,怎么会出现false呢?

追答

 是不是解一元二次方程的?我把程序稍微修改了下.字数太多,只放修改的部分了

  } else {
   if (d < 0) {
    System.out.println("No solution");
    return;
   }
   if (d == 0) {
    System.out.println(x1 = x2 = -b / (2 * a));
    return;
   }
   if (d > 0) {
    System.out.println(
      x1 = (float) (-b + Math.sqrt(Math.pow(b, 2) - 4 * a * c)) / 2 / a);
    System.out.println(
      x2 = (float) (-b - Math.sqrt(Math.pow(b, 2) - 4 * a * c)) / 2 / a);
   }
  }
  if (x1 != x2) {
   System.out.println("Check:");
   System.out.println("\t"
     + "f(x1)=" + (a * Math.pow(x1, 2) + b * x1 + c) + "\n\t"
     + "f(x2)=" + (a * Math.pow(x2, 2) + b * x2 + c));
   return;
  } else
   System.out.println(" ");
 }
}

本回答被提问者采纳
第3个回答  2013-10-05
if(d==0)
System.out.println(x1=x2=-b/(2*a));
return;

这一行没加大括号,所以相当于
if(d==0){
System.out.println(x1=x2=-b/(2*a));
}
return;

在执行if(d > 0)之前就return了,所以if(d > 0)是执行不到的代码,报错了。本回答被网友采纳
第4个回答  2013-10-05
import java.util.Random;
public class Question4
{
public static void main(String[] args)
{
float x1=0;
float x2=0;
System.out.println("The coefficients of the function f(x)=a*x^2+b*x+c are:");
Random randomObj=new Random();
float a =randomObj.nextFloat();
System.out.println("a="+a);
float b =randomObj.nextFloat();
System.out.println("b="+b);
float c =randomObj.nextFloat();
System.out.println("c="+c);
double d =Math.pow(b,2)-4*a*c;
System.out.println("The equation f(x)=0 is quadratic with complex solutions:");
if (a==0)
{
if (b==0)
{
if(c==0)
System.out.print( "Equation is trivial");
else
System.out.print("No solution");
return;
}
else
{
System.out.print(x1=x2=-c/b);
return;
}
}
else
{
if (d<0)
{
System.out.println((double)x1==(-b+Math.sqrt(Math.pow(b,2)-4*a*c))/2/a);
System.out.println((double)x2==(-b-Math.sqrt(Math.pow(b,2)-4*a*c))/2/a);
return;
}
if(d==0)
System.out.println(x1=x2=-b/(2*a));
// return;
if(d>0)
{
System.out.println((double)x1==(-b+Math.sqrt(d)/(2*a)));
System.out.println((double)x2==(-b-Math.sqrt(d)/(2*a)));

}
if (x1!=x2)
{ System.out.println("Check:");
System.out.println("\t"+"f(x1)="+Math.pow((a*x1),2)+b*x1+c+"\n"+"f(x2)="+Math.pow((a*x2),2)+b*x2+c);
return;
}
else
System.out.println(" ");
}
}
}

return 那里有问题,return后面不能有算法了!
第5个回答  2013-10-05
好奇葩错!!!

java 报错无法访问语句
if(d==0) System.out.println(x1=x2=-b\/(2*a)); return; \/\/ 因为上面的return,以下代码永远不会运行,是不是应该改成\/\/ if(d==0) {\/\/ System.out.println(x1=x2=-b\/(2*a));\/\/ return; \/\/ } if(d>0) { ...

java中无法访问的语句 求指点,谢谢
第一个报错是因为System.out.println("A")这句话永远不会被执行,(这个就好比你在return下面多加一句语句是一样的,那句语句永远不会被执行)所以在编译阶段就会报错,而下面的不抱错是因为前一句是一个函数,而函数下面写一句输出语句是没有问题的,编译时会认为没有任何问题!

java 为什么使用continue会使程序错误
首先这不是死循环的问题,这个报错是编译抛出来的,死循环编译和运行都是不会报错的;while(true){}这之后的语句执行不到,所以报错无法访问。这就跟你在return之后的代码一样,都返回了后面的代码能执行到么,抛错和这个一样,编译根本不能通过。区别在哪呢?代码稍做改动就看出来了,将while(true...

java如何 忽略 无法访问的语句报错
可以抛出,Ctrl + 1抛出

java for循环问题,如下图,请问for循环外的i输出为什么没有表示?不...
我最开始也是这么理解的),人家说的i是在循环体内初始化的。由于你在for循环之前就已经对i进行初始化了,所以for循环对它的改变并不仅仅在循环体内。而你没有添加循环条件,导致循环一直进行下去,运行就会报错Unreachable code(无法达到),也就是你cmd里的报错“无法访问的语句”。

...in thread “restartedMain“ java.lang.IllegalAccessException_百度...
报错信息为“java.lang.IllegalAccessException:无法访问类com.awen.springbootdemo的成员。带有“公共静态”修饰符的SpringbootdemoApplication”。此问题源于启动类的定义并未使用公共修饰符(public)。解决方法在于,在启动类上添加public修饰符,确保其对外部可访问。这样操作后,热部署问题将得到解决。

java中在一个方法后面没有加throws IOException为什么会报错!!!
这是File类内部定义的,就是说如果你new的这个subpath目录下找不到那个文件,File类内部就会throw异常,因为你使用了这个File类,所以你必须处理这个异常,所以你不加throws IOException就会报错!!!

java调用jacob报错can'tco-createobject?
检查Java应用程序与COM服务器之间的交互是否存在问题,以及检查服务器端是否允许或阻止了特定类型的进程访问。通过上述步骤的尝试,可以更直观地理解并解决在使用JACOB调用Java COM对象时遇到的错误。调整环境变量至32位JDK,并确保所有依赖项正确配置,是解决“Can't co-create object”问题的直接有效方法。

请问:java编程时出现报错,x cannot be resolved to a variable,怎么让循...
局部变量必须初始化,不然就会报错误的。你在定义x的时候加上 int x=0;就对了。

请问:java编程时出现报错,x cannot be resolved to a variable,怎么让循...
+ x\/10);for (int i = 0; i < b.length; i++) {System.out.print(b[i] + " ");}}}x无法访问还是因为没有初始化的问题,初始化的时候加个x=0;就可以了这是我测试过可以用的代码,建议你还是将scanner得到的数存在数组里面才有用,要不然之前得到的那么多的数字不就没用了嘛。

相似回答