11.26 语句 程序流程变量 for&while的总结

来源:互联网 发布:tripmode for windows 编辑:程序博客网 时间:2024/06/02 06:09

循环结构:


while语句

格式:
定义初始化表达式;
while(条件表达式)
{
执行语句;
}

eg.
(1-100的和):

package org.westos.www;/* * 1-100的和 */public class WhileDemo {    public static void main(String[] args)     {        int sum=0;        int i=100;        while(i>1)         {            sum+=i;            i--;        }        System.out.println("sum="+sum);    }}

eg.
(补考):

package org.westos.www;import java.util.Scanner;public class WhileExam {    public static void main(String[] args)    {        Scanner scan=new Scanner(System.in);        int count=0;        System.out.println("请输入考试成绩:");        int score=scan.nextInt();        while(score<60)         {            count++;            System.out.println("当前不及格,这是第"+count+"次补考");            System.out.println("*****补考中*******");            System.out.println("请输入补考后的成绩");            score=scan.nextInt();//是阻塞键盘等待用户输入int类型的值,用户输入之前一直阻塞。        }        System.out.println("恭喜你,及格了!");        scan.close();    }}

do while语句
格式:
do
{
执行语句;
}while(条件表达式);

while:先判断条件,只有条件满足才执行循环体。
do while:先执行循环体,再判断条件,条件满足,再继续执行循环体。无论条件是否满足,循环体至少执行一次。

for语句

格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}

eg.
( 实现1-100能被3整除不能被5整除的数的和)

package org.westos.www;public class DivideFor{    public static void main(String[] args)     {        int sum=0;        for(int i=1;i<=100;i++)         {            if(i%3==0&i%5!=0)              {                sum+=i;            }        }        System.out.println("sum="+sum);    }}

for和while的区别:

//注意:作用范围的问题,导致以下结果不同。//x在内存中生成,执行完后消失;而y在内存中生成,执行完后还在内存中。eg.for(int x=0;x<3;x++){    System.out.println.("x="+x);}System.out.println.("x====="+x);int y=0;while(y<3){    System.out.println("y="+y);}System.out.println("y====="+y);

1.变量有自己的作用域。对于for来说,如果将用于控制循环的增量定义在for语句中,那么该变量只在for循环内有效。for语句执行完毕,该变量在内存中被释放。
2.for和while可以进行互换。如果需要定义循环增量,用for更合适。

总结:
什么时候使用循环结构?
当对某些语句执行很多次时,就使用循环结构。

!定义一个变量,这个变量的数值变化是有规律的,
用循环操作了这个变量后,还要在下面的代码中使用这个结果,用while
循环合适。


循环语句的其他特点:

for(System.out.println("a");System.out.println("b");System.out.println("c")){    System.out.println("d");}//执行结果是:编译是失败的。因为循环条件表达式,也就是第二步,不知是真是假。int x=1;for(System.out.println("a");x<3;System.out.println("d"),x++){    System.out.println("d");}//多表达式出现时,用,隔开。//编译通过,结果是adcdc

条件表达式必须有真假,才能执行。

无限循环的最简单表达形式:
1.for(; ;) {}

2.while(true)


for语句-累加&计数器

eg.
(获取1-10的和,并打印)

public static void main(String [] args){    int sum=0;//1.定义变量用于存储不断变化的和。    int x=1;//2.定义变量,记录住不断变化的被+的数。    while(x<=10)//3.定义循环,重复加法的过程。    {        sum+=x;        x++;    }    System.out.println("sum="+sum);}

循环注意:
一定要明确哪些语句需要参与循环,哪些不需要。

int sum=0;for(int x=1;x<=10;x++){    sum+=x;}System.out.println("sum="+sum);

eg.
(1-100之间7的倍数的个数,并打印)
思路:
1.先对1-100进行循环(遍历)通过循环的形式
2.在遍历的过程,只对7的倍数进行操作
3.因为7的倍数不确定,只要符合条件,就通过一个变量来记录住这个变化的次数。
步骤:
1.定义循环语句,用for比较合适
2.在循环中定义判断,只要是7的倍数即可。使用if语句(x%7==0)
3.定义变量,该变量随着7的倍数的出现而自增

int count=0;for(int x=1;x<=100;x++){    if(x%7==0)        count++;}System.out.println("count="+count);

累加思想:
原理:通过变量来记录住循环操作后的结果。每次变化的结果通过循环的形式,进行累加的动作。

计数器思想:
原理:通过一个变量记录住数据的状态变化,也需要通过循环完成。


for嵌套

eg.************for(int x=0;x<3;x++){    for(int y=0;y<4;y++)    {        System.out.print("*");    }    System.out.println();}

对于打印长方形:外循环控制行数,内循环控制列数,也就是一行中算式的个数。

eg.***************int z=5;              //int z=0;for(int x=0;x<5;x++){    for(y=0;y<z;y++)//(y=z;y<5;y++)    {        System.out.print("*");    }    System.out.println();    z--;         //z++}
for(int x=0;x<5;x++){    for(y=x;y<5;y++;)    {        System.out.print("*");    }    System.out.println();}
eg.***************for(int x=0;x<5;x++){    for(int y=x;y<=5;y++)    {    System.out.print("*");    }    System.out.println();}
eg112123123412345for(int x=1;x<=5;x++){    for(int y=1;y<=x;y++)    {        System.out.print("y");    }    System.out.println();}

尖朝下,可以改变初始值,让初始值随着外循环变化。
尖朝上,可以改变条件,让条件随着外循环变化。

eg.
(九九乘法表)

for(int x=1;x<=9;x++){    for(int y=1;y<=x;y++)    {        System.out.print(y+"*"+x+"="+y*x+"\t");    }    System.out.println();}

break(跳出)&continue(继续)

break语句:作用于选择结构和循环结构

eg.w:for(int x=0;x<3;x++){    q:for(int y=0;y<5;y++)    {        System.out.print("x="+x);    }       break w;}

continue:只能作用于循环结构。表示继续循环。特点:结束本次循环,继续下一次循环。

eg.for(int x=0;x<3;x++){    continue;    System.out.println("x="+x);}//执行不到continue以下的语句,编译失败。
for(int i=0;i<=10;i++)         {            if(i==5)             {                continue;            }            System.out.println("好好学习"+i);        }
eg.for(int x=1;x<=10;x++){    if(x%2==1)        continue;//if条件满足后继续循环,x++,直到不满足if,打印一次x=2,打印偶数。    System.out.println("x="+x);}
eg.好好学习0好好学习1好好学习2好好学习3好好学习4好好学习6好好学习7好好学习8好好学习9好好学习10for(int a=0;a<5;a++)        {            for(int b=a+1;b<5;b++)             {                System.out.print("-");            }            for(int c=0;c<=a;c++)             {                System.out.print("* ");            }            System.out.println();        }eg.好好学习0好好学习1好好学习2好好学习3好好学习4for(int i=0;i<10;i++)         {            if(i==5)             {                break;            }            System.out.println("好好学习"+i);        }

总结:
1.break和continue语句作用的范围。
2.break continue单独存在时,下面可以有任何语句,因为都执行不到。


eg.----* ---* * --* * * -* * * * * * * * * for(int a=0;a<5;a++)        {            for(int b=a+1;b<5;b++)             {                System.out.print("-");            }            for(int c=0;c<=a;c++)             {                System.out.print("* ");            }            System.out.println();        }
阅读全文
0 0
原创粉丝点击