【发布时间】:2013-05-01 19:46:16
【问题描述】:
每次我尝试编译我的代码时,都会收到关于缺少返回语句的错误。关于我的代码有什么问题的任何想法?
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 所以我修复了一些问题,但现在我收到一个错误,我的变量“结果”可能没有被初始化,有什么建议吗?
import javax.swing.JOptionPane;
import java.io.*;
public class facts
{
public static void main(String[]args)
{
String input;
int x;
char y,prime,perfect;
do{
input = JOptionPane.showInputDialog("Enter an integer");
x = Integer.parseInt(input);
if(x%2==0)
System.out.println("The integer is even - it is evenly divisible by 2");
else
System.out.println("The integer is not even - it is not evenly divisible by 2");
prime = isPrime(x);
if(prime == 't')
System.out.println("The integer is a prime number");
else
System.out.println("The integer is not a prime number");
perfect = isPerfect(x);
if(perfect == 't')
System.out.println("The integer is a perfect number");
else
System.out.println("The integer is not a perfect number");
input = JOptionPane.showInputDialog("Enter Y for another number, anything else to quit");
y = input.charAt(0);
}while(y=='Y');
System.out.println("Good Bye");
System.exit(0);
}
public static char isPrime(int x)
{
for(int y=2;y<x;y++)
{
if(x%y==0)
return 't';
else
return 'f';
}
}
public static char isPerfect(int x)
public static int triAng(int x)
{
int result,z,y = 1;
while(y<=x)
{
z=y*(y+1)/2;
y++;
System.out.println(z);
result = z;
}
return result;
}
【问题讨论】:
-
要做的第一件事:修复缩进。第二件事:在所有
if语句主体周围添加大括号(或迟早会)咬你。要做的第四件事:将返回 true 或 false 值的方法从返回char更改为返回boolean。然后考虑如果x % y永远不为0,你想做什么。 -
我会说你至少错过了 2 个。
-
@JonSkeet 神秘的第三点是什么? :)
-
@skuntsel 我一直想知道这是否是 Jon Skeet 的传奇事实之一:meta.stackexchange.com/questions/9134/jon-skeet-facts 但我什么也找不到。
-
@skuntsel:为什么,当然是想出第三件事;)哎呀。 (我确定我确实还有一个。可能是为了编写更短的方法,然后我发现它们毕竟没有那么长。)跨度>
标签: java