记录两个令我这个萌新码农十分吃惊的错误
- 各种运算符的先后顺序
- 想当然使用符号
错误代码:
import java.util.Scanner;
public class Triangle
{
public static void main(String arg[]){
Scanner syzWork = new Scanner(System.in);
int a = syzWork.nextInt();
int b = syzWork.nextInt();
int c = syzWork.nextInt();
if (a>0 && b>0 && c>0)
{
if(((a^2+b^2)==c^2)|((c^2+b^2)==a^2)|((a^2+c^2)==b^2)){
System.out.println("true");
}
else{
System.out.println("false");
}
}
else
{
System.out.println("false");
}
}
}
错误:
正确代码:
import java.util.Scanner;
public class Triangle
{
public static void main(String arg[]){
Scanner syzWork = new Scanner(System.in);
int a = syzWork.nextInt();
int b = syzWork.nextInt();
int c = syzWork.nextInt();
if (a>0 && b>0 && c>0)
{
if(((a*a+b*b)==c*c)|((c*c+b*b)==a*a)|((a*a+c*c)==b*b)){
System.out.println("true");
}
else{
System.out.println("false");
}
}
else
{
System.out.println("false");
}
}
}
反省:
- 为了以绝后患,在此“剽窃”各种运算符的优先顺序图片一张:
- 倘若想使用幂函数,例如2的3次方,应当使用Math.pow函数。23用Java代码表示为Math.pow(2,3);