----------------------android培训、java培训、期待与您交流! ----------------------
Java支持if语句、if…else语句、switch语句以及条件表达式运算符“?:”。
例1 条件语句的使用.
下面的程序将首先产生0到99的随机整数,然后,利用条件语句来对他们进行分类。
public class Ex0104
{
public static void main(String[] args)
{
int n = (int)Math.round(100*Math.random());
System.out.println("n = " + n);
if(n>25&&n<75) System.out.println(n + " is between 25 and 27");
else System.out.println(n + " is not between 25 and 27");
switch((int)n/20)
{
case 0: System.out.println(n + " <20");
case 1: System.out.println(n + " <40");
case 2: System.out.println(n + " <60"); break;
case 3: System.out.println(n + " <80"); break;
default: System.out.println(n + " >=80"); break;
}
System.out.println(n+(n%2>0?" is odd":" is even"));
}
}
该程序的输出为:
![](https://img-my.csdn.net/uploads/201208/09/1344501596_9198.jpg)
注意,在case为0和case为1的两个条件语句中都省略了break语句,这样,程序将顺序执行,一直到case为2的条件语句为止。在结果中,我们可以看到这3个输出语句的输出结果。对语句n%2>0? "is odd":”iseven” 而言,表达的语义是:当条件部分n%2>0为真时(也就是n不能为2整除),该语句的返回结果为”is oddd”,否则返回结果为”iseven”。
Java支持while语句、do…while语句以及for循环语句。
例2 循环语句的使用
下面的程序将从经验和尝试的角度来验证高斯(Guass)的素数定理,该定理可表述为:如p(n)表示小于n的素数的个数,则比值p(n)(ln n )/n 随n的增大而趋向于1.0。
在程序中,奇数n的取值范围从3到1000000,对每个n,将计算出p(n)。 随着p(n)的增加,我们在它达到5000的倍数时进行输出,打印出相应的n、p(n)、ln n(自然对数)以及比值p(n)(ln n)/n,可以看到,它趋向于1.0。
在程序中,奇数n的取值范围从3到1000000,对每个n,将计算出p(n)。随着P(n)的增加,我们在它达到5000的倍数时进行输出,打印出相应的n 、p(n)、ln(n)(自然对数)以及比值p(n)(ln n)/n,可以看到,它趋向于1.0。
class Ex0105
{
public static void main(String [] args)
{
System.out.println("n\tp(n)\tln(n)\t\t\tp(n)*ln(n)/n");
final String DASHES18 = "\t------------------";
System.out.println("-----\t-----"+DASHES18+DASHES18);
int p=1;//p为小于n的素数的个数。
for (int n=3;n<1000000 ;n+=2 )
{
int d = 3;
while(d<=Math.sqrt(n)&&n%d>0)
d +=2;
if(n%d==0) continue;
++p;
if(p%5000>0) continue;
double ln = Math.log(n);
System.out.println(n+"\t"+p+"\t"+ln+"\t"+p*ln/n);
}
System.out.println("-----\t-----"+DASHES18+DASHES18);
}
}
![](https://img-my.csdn.net/uploads/201208/09/1344501731_3840.jpg)
在程序中,for循环重复执行了499999次,分别对应3,5,7,9…999999中的每一个值。循环体对n进行测试,看能否被d=3,5,9,... 等数所整除,如果能整除(即n%d的余数为零),则第一个continue语句将被执行并重复执行下一个for循环。当n不能为上述各数整除时,表明n 是一个素数,这样计数器p加1 。
Java支持子程序,这些子程序称为方法。
例3 方法的使用
下面这个程序与例2的输出结果是一样的,但它使用了一个单独的方法来判断某个整数n是否为素数。
class Ex0106
{
public static void main(String [] args)
{
System.out.println("n\tp(n)\tln(n)\t\t\tp(n)*ln(n)/n");
final String DASHES18 = "\t------------------";
System.out.println("-----\t-----"+DASHES18+DASHES18);
int p=1;//p为小于n的素数的个数。
for (int n=3;n<1000000 ;n+=2 )
if(isPrime(n))
{
++p;
if(p%5000>0) continue;
double ln = Math.log(n);
System.out.println(n+"\t"+p+"\t"+ln+"\t"+p*ln/n);
}
System.out.println("-----\t-----"+DASHES18+DASHES18);
}
private static boolean isPrime(int n)
{
int d=3;
while(d<=Math.sqrt(n)&&n%d>0)
d += 2;
if(n%d==0) return false;
return true;
}
}
程序中的isPrime()方法封装了判断n是否为素数的代码。当n能被某个整数所整除时,就返回false,表明它不是素数。反之,找不到能整除n的整数时,返回ture,表明它是一个素数。
值得指出的是,该方法被声明为private static ,这是有特别的含义的,声明为private 意味着它将不为该类之外的其他类所使用,而说明为static则是由于它将被同样是static的main()方法所调用。
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima