java基础——循环语句和循环中断语句

程序语句的三种结构
1.顺序结构
2.选择结构
3.循环结构



3.1顺序结构


3.2选择结构

举例:验证选择结构
[java]  view plain  copy
 print ?
  1. public  class IfDemo{  
  2.     public static void main(String args[]){  
  3.         int x = 3;        //定义变量  
  4.         int y = 10;        //定义变量  
  5.         System.out.println("===比较开始==");  
  6.         if(x>y){  
  7.             System.out.println("x比y大");  
  8.         }  
  9.         if(x<y){  
  10.             System.out.println("x比y小!");  
  11.         }  
  12.     }  
  13. }  



if语句

if...else语句

[java]  view plain  copy
 print ?
  1. public class IfElseDemo{  
  2.     public static void main(String args[]){  
  3.         int x = 3;  
  4.         if(x%2==1){  
  5.             System.out.println("x是奇数");  
  6.         }else{  
  7.             System.out.println("x是偶数");  
  8.         }  
  9.       
  10.       
  11.     }  
  12.   
  13. }  




三目运算符


[java]  view plain  copy
 print ?
  1. public class MaxDemo{  
  2.     public static void main(String args[]){  
  3.         int max = 0;  
  4.         int x = 3;  
  5.         int y = 10;  
  6.         if(x<y){  
  7.             max = y;  
  8.         }else  
  9.         {  
  10.             max = x;  
  11.         }  
  12.         System.out.println("最大值为:" + max);  
  13.     }  
  14.   
  15. }  



使用三目运算符

[java]  view plain  copy
 print ?
  1. public class MaxDemo{  
  2.     public static void main(String args[]){  
  3.         int max = 0;  
  4.         int x = 3;  
  5.         int y = 10;  
  6.         max  = x>y ? x : y;  //通过三目运算符  
  7.         System.out.println("最大值为:" + max);  
  8.     }  
  9. }  




if ... else if ...else 语句

[java]  view plain  copy
 print ?
  1. public class MoreIfElseDemo{  
  2.     public static void main(String args[]){  
  3.         int x = 3;  
  4.         if(x==1){  
  5.             System.out.println("x的值是1");  
  6.         }else if(x==2){  
  7.             System.out.println("x的值是3");  
  8.         }else if(x==3){  
  9.             System.out.println("x的值是1");  
  10.         }else{  
  11.             System.out.println("x不是1,2,3中的任何一个");  
  12.         }  
  13.       
  14.     }  
  15.   
  16. }  




switch语句

[java]  view plain  copy
 print ?
  1. public class SwitchDemo01{  
  2.   
  3.     //完成一个四则运算的功能  
  4.     public static void main(String args[]){  
  5.       
  6.         int x = 3;  
  7.         int y = 6;  
  8.         char oper = '+';  
  9.         switch(oper){  
  10.             case '+':{  
  11.                 System.out.println("x + y = " + (x + y));  
  12.                 break;  
  13.             }  
  14.             case '-':{  
  15.                 System.out.println("x - y = " + (x - y));  
  16.                 break;  
  17.             }  
  18.             case '*':{  
  19.                 System.out.println("x * y = " + (x * y));  
  20.                 break;  
  21.             }  
  22.             case '/':{  
  23.                 System.out.println("x / y = " + (x / y));  
  24.                 break;  
  25.             }  
  26.             default:{  
  27.                 System.out.println("未知的操作");  
  28.                 break;  
  29.             }  
  30.           
  31.         }  
  32.     }  
  33. }  




3.3循环结构

while循环
[java]  view plain  copy
 print ?
  1. public class WhileDemo{  
  2.     public static void mian(String args[]){  
  3.         int x = 1;  
  4.         int sum = 0;  
  5.         while(x<=10){  
  6.             sum += x;  
  7.             x++;            //修改循环条件  
  8.         }  
  9.         System.out.println("1 --> 10 的累加效果为:" + sum);  
  10.     }  
  11. }  


do while循环

[java]  view plain  copy
 print ?
  1. public class DoWhileDemo{  
  2.     public static void main(String args[]){  
  3.         int x = 1;  
  4.         int sum = 0;  
  5.         do{  
  6.             sum += x;  
  7.             x++;  
  8.         }while(x<=10);  
  9.         System.out.println("1 -->  10 的累加效果为:" + sum);  
  10.     }  
  11. }  



for循环


[java]  view plain  copy
 print ?
  1. public class ForDemo{  
  2.     public static void main(String args[]){  
  3.         int sum = 0;  
  4.         for(int x=1;x<=10;x++){  
  5.             sum += x;  
  6.         }  
  7.         System.out.println("x  --> 10 的累加效果为:" + sum);  
  8.           
  9.       
  10.     }  
  11.   
  12. }  


循环嵌套操作(最好2~3层即可,不要太多,否则太占内存)

乘法表格
[java]  view plain  copy
 print ?
  1. public class ForNesteDemo{  
  2.     public static void main(String args[]){  
  3.         for(int i=1;i<=9;i++){ //控制行  
  4.             for(int j=1;j<=9;j++){ //控制列  
  5.                 System.out.print(i+"*"+j+"="+(i*j)+"\t");  
  6.             }  
  7.             System.out.println();  
  8.         }  
  9.     }  
  10. }  




使用阶梯形状变化
public class ForNesteDemo{
    public static void main(String args[]){
        for(int i=1;i<=9;i++){ //控制行
            for(int j=1;j<=i;j++){ //控制列
                System.out.print(i+"*"+j+"="+(i*j)+"\t");
            }
            System.out.println();
        }
    }
}

3.4终端语句


break语句
可以中断for循环语句====以后的操作都不在执行了

[java]  view plain  copy
 print ?
  1. public class BreakDemo{  
  2.     public static void main(String args[]){  
  3.         for(int i=1;i<10;i++){  
  4.             if(i==3){  
  5.             break;  
  6.             }  
  7.             System.out.println("i = " + i);  
  8.         }  
  9.     }  
  10. }  



continue语句
只中断一次循环的执行

[java]  view plain  copy
 print ?
  1. public class ContinueDemo{  
  2.     public static void main(String args[]){  
  3.         for(int i=1;i<10;i++){  
  4.             if(i==3){  
  5.             continue;  
  6.             }  
  7.             System.out.println("i = " + i);  
  8.         }  
  9.     }  
  10. }  



while 语句
while 关键字的中文意思是“当……的时候”,也就是当条件成立时循环执行对应的代码。while 语句是循环语句中基本的结构,语法格式比较简单。
while 语句语法格式:
while(循环条件)
         循环体;

为了结构清楚,并且使循环体部分可以书写多行代码,一般把循环体处理成代码块,则语法格式变为:
while(循环条件){
         循环体;
}
语法说明:和if 语句类似,如果不是用代码块的结构,则只有while后面的第一个语句是循环体语句。在该语法中,要求循环条件的类型为boolean类型,指循环成立的条件,循环体部分则是需要重复执行的代码。
执行流程:在执行while 语句时,首先判断循环条件,如果循环条件为false,则直接执行while 语句后续的代码,如果循环条件为true,则执行循环体代码,然后再判断循环条件,一直到循环条件不成立为止。
下面结合具体的示例来演示一下while 语句的基本使用。首先我们来实现一个无限循环,也称死循环,
具体代码如下:
while(true){
        System.out.println(‘a’);
}

下面讲解一下该while 语句的执行顺序,首先判断while 语句的循环条件,条件成立,则执行循环体的代码,输出字符a,然后再判别循环条件,条件成立,继续执行循环体代码,输出a,再判断循环条件……,依次类推,因为循环条件一直成立,所以该程序的功能是一直输出a,永不停止。
说明:在控制台下执行死循环的程序,可以按Ctrl+C 结束循环,在Eclipse 中运行死循环的程序,可以选择执行窗口中的红色按钮“Terminate”结束程序。
下面是使用while 语句输出0-9 这10 个数字,程序实现的原理是使用一个变量代表0-9 之间的数字,每次输出该变量的值,每次对该变量的值加1。变量的值从0 开始,只要小于数字10 就执行该循环。具体的示例代码如下:
int i = 0;
while(i < 10){
         System.out.println(i); //输出变量的值
         i++; //变量的值增加1
}
其执行流程为:
1、执行int I = 0;
2、判断i<10 是否成立,如果不成立则结束,否则执行下一步
3、输出变量i 的值
4、i 的值增加1
5、跳转到步骤2 继续执行
需要注意的是:首先while 语句中的条件是循环成立的条件,也就是该条件成立则继续循环,所以在书写时注意。另外,内部代码的书写有顺序,同样是上面的代码,如果调整内部代码的顺序,如下所示:
int i = 0;
while(i < 10){
          i++; //变量的值增加1
          System.out.println(i); //输出变量的值
}
则程序的执行结果将变为输出数字1-10。所以在循环语句中,代码之间的顺序也影响整个程序的逻辑。下面是用循环实现一个简单的数学逻辑,求1-10 这10 个数字的和。程序的原理是这样:声明一个变量i,从1 变化到10,在声明一个变量sum,每次和i 的值相加以后赋值给自身,下次再使用sum 是变化以后的i 相加,循环结束以后,得到的结果就是数字1-10 之间所有数字的和。示例代码如下:
int i = 1; //循环变量
int sum = 0; //数字和
while(i <= 10){
            sum += i; //和当前的i 值相加
            i++; //变量i 增加1
}

这样,第一次循环是把和1 相加的结果赋值给sum,然后再使用sum 的值和2 相加再赋值给sum,依次类推,则得到1-10 之间所有变量的和。在使用循环语句时,发现规律需要的时间比编写和调试代码需要的时间多得多,所以要善于发现规律,善于思考。
------------------------------------------------------------------------------------------------------------------------------------------------------------
do-while 语句
do-while 语句由关键字do 和while 组成,是循环语句中最典型的“先循环再判断”的流程控制结构,这个和其它2 个循环语句都不相同。
do-while 语句的语法格式为:
do{
        循环体;
}while(循环条件);
语法说明:在do-while 语句中,循环体部分是重复执行的代码部分,循环条件指循环成立的条件,要求循环条件是boolean 类型,值为true 时循环执行,否则循环结束,最后整个语句以分号结束。
执行流程:当执行到do-while 语句时,首先执行循环体,然后再判断循环条件,如果循环条件不成立,则循环结束,如果循环条件成立,则继续执行循环体,循环体执行完成以后再判断循环条件,依次类推。
实现和while 语句实现的类似的示例,则死循环的示例代码为:
do{
            System.out.println(‘a’);
}while(true);
实现输出0-9 这10 个数字的循环为:
int i = 0;
do{
            System.out.println(i); //输出变量的值
            i++; //变量增加1
}while(i < 10);
实现求1-10 这10 个数字的和的代码为:
int i = 1;
int sum = 0;
do{
            sum += i; //求和
            i++; //变量增加1
}while(i < 10);
            System.out.println(sum); //输出和

同理,实现求5 的阶乘的代码类似,在数学上5 的阶乘指1×2×3×4×5,数学上规定0 的阶乘等于1,在实际计算时,阶乘的值增加的非常快,所以需要注意结果不能溢出。其具体代码为:
int i = 1;
int result = 1;
do{
            result *= i;
            i++;
}while(i <= 5);
            System.out.println(result);

在实际的程序中,do-while 的优势在于实现那些先循环再判断的逻辑,这个可以在一定程度上减少代码的重复,但是总体来说,do-while 语句使用的频率没有其他的循环语句高。
-----------------------------------------------------------------------------------------------------------------------------------------------------------
for 语句
for 关键字的意思是“当…的时候”,是实际开发中比较常用的循环语句,其语法格式相对于前面的循环语句来说稍显复杂,但是在熟悉以后,将会发现其语法安排的比较条理,把循环控制和循环体很清晰的分开。
for 语句的语法格式为:
for(初始化语句;循环条件;迭代语句){
            循环体;
}

语法说明
1、和其它流程控制语句一样,语句中的大括号不是语法必须的,但是为了结构清楚以及在循环体部分可以书写多行代码,一般使用大括号。
2、初始化语句作用是在循环开始以前执行,一般书写变量初始化的代码,例如循环变量的声明、赋值等。该语句可以为空。
3、循环条件是循环成立的条件,要求必须为boolean 类型,如果该条件为空,则默认为true,即条件成立。
4、迭代语句是指循环变量变化的语句,一般书写i++、i—这样的结构,当然,该语句也可以为空
5、循环体指循环重复执行的功能代码。
执行流程
1、执行初始化语句
2、判断循环条件,如果循环条件为false,则结束循环,否则执行下一步
3、执行循环体
4、执行迭代语句
5、跳转到步骤2 重复执行
需要注意的是:for 语句中的各个语句都可以为空,初始化语句在for语句执行时执行且只执行一次。
依据for 语句的语法格式,则最简单的for 语句是如下格式:
for(;;);
由于循环条件为空时,默认为true,则循环条件恒成立,该循环的循环体即最后的一个分号,这样的语句称作空语句,则该循环是一个死循环,循环体是空语句。在实际书写代码时,一般把循环控制部分都写在for 语句的小括号内部,而循环体只书写和逻辑相关的代码,这种结构使逻辑显得很清晰。
使用for 语句输出的0-9 之间数字的代码如下:
for(int i = 0;i < 10;i++){
            System.out.println(i);
}
则该语句的执行流程为:
1、执行int i = 0;
2、判断i<10,如果条件不成立则结束,否则继续执行下一步
3、执行System.out.println(i);
4、执行i++
5、跳转到步骤2 继续执行
类似的示例代码,实现求1-100 之间数字的和,代码如下:
int sum = 0;
for(int i = 1;i <= 100;i++){
            sum +=i;
}
        
    System.out.println(sum);
这些是一些基本的for 语句的使用,在通常情况下,for 语句和while语句之间可以实现很简单的转换,例如下面是一个使用for 语句书写的while
格式的代码:
int i = 0;
for(;i < 10;){
            System.out.println(i);
            i++;
}
关于for 语句的深入使用请参看后续的综合示例部分的讲解。
------------------------------------------------------------------------------------------------------------------------------------------------------------
小结:
这里介绍了基本的循环控制语句的语法格式,在程序设计时,必须理解每种语句的语法格式和对应的特点,才能在实际使用时依据自己的逻辑进行灵活运用。和前面的条件语句一样,在实际使用时,循环控制语句之间也可以进行相互的嵌套来解决复杂的逻辑,在语法上对于嵌套的层次没有限制。while 语句和for 语句在循环语句中属于“先判断再循环”的结构,而do-while 语句属于“先循环再判断”的结构,所以从语法角度来看,do-while语句的循环体至少会执行一次,在实际使用时while 语句和for 语句之间可以进行很方便的替换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值