分享

第四周:循环控制

 露石 2015-02-24


4-1-1for循环

 

For 循环

For循环像一个计数循环:设定一个计数器,初始化它,然后在计数器到达某值之前,重复执行循环体,而每执行一轮循环,计数器值以一定步进进行调整,比如加1或者减1

For(i=0;i<5;i=i+1){

         System.out.p;rintln(i)

}

 

For(初始化;条件;单步动作){

 

}

1.       第一个部分是一个初始化,可以定义一个新的变量:int count=10 或者直接赋值:i=10.

2.       第二个部分是循环维持的条件。这个条件是先验的,与while循环一样,进入循环之前,首先要检验条件是否满足,条件满足才执行循环;条件不满足就结束循环。

3.       第三部分是步进,即每轮执行了循环体之后,必须执行的表达式。通常我们在这里改变循环变更,进行加或减的操作。

 

For=对于

for(count=10;count>0;count=count-1)

就读成:“对于一开始的count10,count>0时,重复做循环体,每一轮循环在做完循环体内语句后,使得count递减。

For==while

For循环:for(初始动作;条件;每轮的动作){

}

For中的每一个表达式都是可以省略的:for(;条件;)==while(条件

 

 

 

空循环

For(i=0;i<10;i++);

大小括号中不能有;有了就变成空循环

For(i=0;i<10;i++)

System.out.println(i)

强烈建议:只要是for语句,就一定跟上一对大括号

 

循环次数

Fori=0;i<n;i=i+1

则循环的次数是n,而循环结束以后,i的值是n

 

有固定次数:for

必须执行一次:do while

其他情况:while

4-1-2for循环

 

A=a+6 >> a+=6

A=a-6 >> a-=6

A=a*6 >> a*=6

A=a/6 >> a/=6        

A*=b+6 >> a=a*(b+6)

a/=b*6 >> a=a/(b*6)

 

 

42循环控制-1

 

I=i+1 >> i++

 

Int i=6

A=i++ >> a=6  i=7

A=++i >> a=7  i=7

 

 

Continue:跳过循环这一轮剩下的语句进入下一轮。

Break:跳出循环

Break:while, do..while,for三种循环中都可使用break

 

素数:只能被1和自己整除的数,不包括一

package hello;

 

import java.util.Scanner;

 

public class Hello {

 

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int n=in.nextInt();

        int isprime=0;

        for(int i=2;i<n;i++)

        {

            if(n%i==0)

            {

            isprime=-1;

            break;

            }

        }

        if(isprime==-1)

            {

            System.out.println("它不是素数");   

            }

        else

            {

            System.out.println("它是素数");

            }

       

        }

    }

 

++i++ifor中的大括号{}中值一样

 

package hello;

 

import java.util.Scanner;

 

public class Hello {

 

    public static void main(String[] args) {

        for(int i=2;i<5;++i)

        {

            System.out.println(i);

        }      

        }

    }

 

 

在循环前可以放一个标号来标示循环:如 label:(独占一行)

带标号的breakcontinue对那个循环作用。4-2循环控制-2

 

package hello;

 

import java.util.Scanner;

 

public class Hello

{

 

    public static void main(String[] args)

    {

    out:

    for(int i=0;i<5;i++)   

        {

            for(int j=0;j<5;j++)

            {

            System.out.println(j); 

//          break;

            break out;

            }

        }

       

    }

}

 

4-2循环控制-3  

http://wenzhang.baidu.com/article/view?key=a62df80e24ada1bd-1424665430

 

逻辑运算的优先级:

!高于&&高于||

 

 

4-3循环计算-1

F(n)=1+1/2+1/3+1/4+………+1/n

package hello;

 

import java.util.Scanner;

 

public class Hello

{

 

    public static void main(String[] args)

    {

    Scanner in=new Scanner(System.in);

    int n=in.nextInt();

    double sum=0.0;

    for(int i=1;i<=n;i++)

    {

        sum+=1.0/i;

    }

    System.out.printf("%.2f",sum);

    }

}

 

F(n)=1-1/2+1/3-1/4+………+1/n

package hello;

 

import java.util.Scanner;

 

public class Hello

{

 

    public static void main(String[] args)

    {

    Scanner in=new Scanner(System.in);

    int n=in.nextInt();

    double sum=0.0;

    int sign=1;

    for(int i=1;i<=n;i++)

    {

        sum+=1.0/i;

        sign=-sign;

    }

    System.out.printf("%.2f",sum);

    }

}

F(n)=1-1/2+1/3-1/4+………+1/n

package hello;

 

import java.util.Scanner;

 

public class Hello

{

 

    public static void main(String[] args)

    {

    Scanner in=new Scanner(System.in);

    int n=in.nextInt();

    double sum=0.0;

    int sign=1;

    for(int i=1;i<=n;i++)

    {

        if(i%2==1)

        {

            sum+=1.0/i;

        }

        else

        {

            sum-=1.0/i;

        }

    }

    System.out.printf("%.2f",sum);

    }

}

 

 

 

43循环计算-2
求最大公约数的第一种算法,欧几里德算法

package hello;

 

import java.util.Scanner;

 

public class Hello

{

 

    public static void main(String[] args)

    {

    Scanner in=new Scanner(System.in);

    int a=in.nextInt();

    int b=in.nextInt();

    int oa=a;

    int ob=b;

    while(b!=0)

    {

        int r=a%b;

        System.out.println(a+","+b+","+r);

        a=b;

        b=r;

    }

    System.out.println(oa+""+ob+"的最大公约数是"+a);

    }

}

 

 

求最大公约数的第二种算法

package hello;

 

import java.util.Scanner;

 

public class Hello

{

 

    public static void main(String[] args)

    {

    Scanner in=new Scanner(System.in);

    int a=in.nextInt();

    int b=in.nextInt();

    int gcd=1;

    for(int i=2;i<=a && i<=b;i++)

    {

        if(a%i==0 && b%i==0)

        {

            gcd=i;

        }

    }

    System.out.println(a+""+b+"的最大公约数是"+gcd);

    }

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多