控制流程语句(循环)

一、for循环

for循环语法:

        for(①循环初始化;②循环条件;④循环变化 ){

                ③循环体

}

for 循环的执行顺序:

                true 循环体        循环变化        循环结束条件........

        循环初始化 ---> 循环结束条件

                false        结束循环

 需求:输出100遍我喜欢java

 需求:输出1-100所有的奇数

 需求:输出a-z

 需求:求1-100的和

//需求:输出100遍我喜欢java	
for(int i = 1;i <= 100; i++){
    System.out.println("我喜欢java"+i);
}		

//需求:输出1-100所有的奇数
for(int i = 1; i < 101; i++){
    if(i % 2 != 0){
        System.out.println(i);
    }			
}		
for(int i = 1; i < 101; i=i+2){
    System.out.println(i);
}		
//需求:输出a-z	
for(char i = 'a' ; i <= 'z' ; i++){
    System.out.println(i);
}

//需求:求1-100的和 1+2+3+4... 
int sum = 0;
for(int i = 1 ; i <= 100 ; i++){
    //i = 1;
    //i = 2;
    sum = sum + i;
}
System.out.println(sum);

 二、While循环

while循环语法:

                while(①循环条件 ){

                        ②循环体

                }

while执行顺序:

                 true 循环体 循环条件......

            循环条件

                false 结束循环

 1、打印100遍我喜欢MySQL

 2、求得一个数是几位数?

//1、打印100遍我喜欢MySQL		
int i = 1;
while(i <= 100){
    System.out.println("我喜欢MySQL"+i);
    i++;
}

//2、求1~100的和
int i = 1;
int sum = 0;
while(i < 101){			
    sum = sum + i;
    i++;
}
System.out.println(sum);


//3、求得一个数是几位数?  分析:将这个数循环除以10记录运算了几次
int num = 12345;
int temp = num;
if(num == 0){
    System.out.println(num+"是1位数");
}else{
    //定义一个变量用于保存循环的次数
    int count = 0;
    while(num != 0){
        //将这个数循环除以10
        num = num / 10;
        //每次循环次数+1
        count++;
    }
    System.out.println(temp+"是"+count+"位数");
}

  三、do while循环

do..while 循环语法:

        do{

                循环体

        }while(循环条件);

do..while 执行顺序

                true 循环体 循环条件....

        循环体 循环条件

                false 结束循环

 案例:打印100遍我喜欢编程

 案例:学生根据老师的评语,是否继续敲代码,直到测评为ok,就结束

//案例:打印100遍我喜欢编程
int i = 1;
do{
    System.out.println("我喜欢编程");
    i++;
}while(i <= 100);


//案例:学生根据老师的评语,是否继续敲代码,直到测评为ok,就结束
Scanner sc = new Scanner(System.in);
String result;
do{
    System.out.println("敲代码ing...你看我的代码怎么样???");
    System.out.println("评价:");			
    result = sc.next();			
}while(!result.equals("ok"));

 四、break和continue关键字 

break 表示结束当前循环

continue 表示结束本次循环,继续下一次循环

注意:紧跟着break和continue后面不能写任何代码

 

案例:从1加到100,输出和大于888的那个数

案例:输出100以内,所有的不是3的倍数

综合案例:将输入的内容,进行输出,如果输入886,结束聊天。如果输入敏感词汇,不输出显示

//案例:从1加到100,输出和大于888的那个数
//定义变量保存总和
int sum = 0;
for(int i = 1; i <= 100; i++){			
    sum = sum + i;
    if(sum > 888){
        System.out.println(i);
        break; //表示结束当前循环
        //System.out.println("能执行吗??"); //编译报错
    }
    //System.out.println("能执行吗??");	 可以写		
}		

//案例:输出100以内,所有的不是3的倍数
for(int i = 1; i <= 100 ; i++){
    if(i % 3 == 0){
        continue;//结束本次循环继续下次循环
    }		
    System.out.println(i);			
}


//综合案例:将输入的内容,进行输出,如果输入886,结束聊天。如果输入敏感词汇,不输出显示
Scanner sc = new Scanner(System.in);

while(true){
    String word = sc.next();
    if(word.equals("886")){
        break;
    }			
    if(word.equals("WC")||word.equals("SB")){
        System.out.println("***");
        continue;
    }
    System.out.println(word);			
}

Scanner sc = new Scanner(System.in);
for(;;){
    String word = sc.next();
    if(word.equals("886")){
        break;
    }			
    if(word.equals("WC")||word.equals("SB")){
        System.out.println("***");
        continue;
    }
    System.out.println(word);				
}

五、嵌套循环

 需求1:打印5**5的矩形(用 * 表示)

for(int i = 1 ; i <= 5 ;i++){ //控制行
    for(int j = 1 ; j <= 5 ; j++){//控制列
        System.out.print("*");
    }
    System.out.println();
}

需求2:打印三角形1

for(int i = 1; i <= 5; i++){
    for(int j = 1; j <= i;j++){
        System.out.print("*");
    }
    System.out.println();
}

 需求3:打印三角形2

for(int i = 1; i <= 5; i++){			

    for(int j = 1 ; j <= 6 - i ; j++){
        System.out.print("*");
    }			

    System.out.println();
}

 需求4:打印三角形3

 

for(int i = 1; i <= 5; i++){
    for(int j = 1; j < 6-i ; j++){
        System.out.print(" ");
    }

    for(int j = 1; j <= i ; j++){
        System.out.print("*");
    }	

    System.out.println();
}

 需求5:打印三角形4

for(int i = 1; i <= 5; i++){
    for(int j = 1; j < i ;j++){
        System.out.print(" ");
    }
    for(int j = 1; j <= 6-i; j++){
        System.out.print("*");
    }			
    System.out.println();
}

需求6:打印等腰三角形

for(int i = 1; i <= 5 ;i++){

    for(int j = 1; j < 6-i ; j++){
        System.out.print(" ");
    }			

    for(int j = 1; j <= 2*i-1; j++){
        System.out.print("*");
    }


    System.out.println();
}

 需求7:打印空心矩形

for(int i = 1;i <= 5; i++){

    for(int j = 1 ; j <= 5 ; j++){
        if(i==1 || i==5 || j==1 || j==5){
            System.out.print("*");
        }else{
            System.out.print(" ");
        }

    }


    System.out.println();
}

案例8:九九乘法表

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

 案例9:今有鸡兔同笼,上有35个头,下有94足,问鸡兔各几只?编写程序解决这个问题。

for(int i = 0 ; i <= 35 ;i++){ //表示鸡的数量
    for(int j = 0 ; j <= 35 ; j++){ //表示兔子数量
        if(i+j==35 && 2*i+4*j == 94){
            System.out.println("鸡的数量为:"+i+"兔子数量为:"+j);
        }
    }
}
//优化:
for(int i = 0 ; i <= 35 ;i++){ //表示鸡的数量
    if(i*2 + (35-i)*4 == 94){
        System.out.println("鸡的数量为:"+i+"兔子数量为:"+(35-i));
    }
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值