作者dharma (达)
看板java
标题[问题] 类别的成员变数的位置
时间Thu Jan 23 00:40:40 2014
输入一个整数n,列出2到n之间的质数
有一个地方不懂
就是着色那行的位置
为什麽放上面不行,只能放在下面的成员函数内?
import java.util.Scanner;
class Prime { //判断是不是质数的类别
int j;
// int flag = 0; //这行不能放在这里,会不对
char isPrime(int i) {
int flag = 0;// 放在这里才会对
for (j = 2; j <= Math.sqrt(i); j++) {//测试到不大於根号
if (i % j == 0) { //如果可以整除,即不会是质数
flag = 1;
break;//立刻跳出for回圈
}
}
if (flag == 1)
return 'n';//不是质数,回传字元n
else
return 'y';//是质数,回传字元y
}
}
//主程式
public class Prime_List {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n, i;
System.out.println("请输入一个整数:");
Scanner scan = new Scanner(System.in);// 宣告input,类型为Scanner
n = scan.nextInt(); // 叫input去读一个int,并存到n
System.out.println("从2到" + n + "之间的质数有:\n");
Prime prime = new Prime();
for (i = 3; i <= n; i++) {//从3开始,因为省去判断2的部分
if (prime.isPrime(i) == 'y')//如果isPrime回传的是字母y
System.out.println(i + " ");//输出质数i加空格
}
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.163.106.192
1F:推 LPH66:成员变数只有宣告不能给值, 还有放底下的不是成员只是 local 01/23 00:44
因为有本书看到范例里的成员变数也有赋值
所以不确定
2F:→ CCWck:class的member要assign value请用constructor 01/23 00:58
3F:→ mrker:member varable不能设值? 真的假的啊 01/24 11:11
4F:→ mrker:原PO的错误应该是flag放在member 在前面有set成1 所以会错 01/24 11:12
文章被s是因为注解不足,被认为是作业文?
已补上更多的注解
※ 编辑: dharma 来自: 118.163.106.192 (01/24 13:43)
5F:推 rayyang1113:当你flag放在function外 在你每次呼叫function时 01/24 16:30
6F:→ rayyang1113:flag的值都不会重设为0 也就是一但遇到质数flag的值被 01/24 16:34
7F:→ rayyang1113:设为1後 flag的值就永远是1 後面的数字也就被当质数了 01/24 16:42
8F:推 gmoz:先去学单步执行怎麽用吧 01/29 10:14