zoukankan      html  css  js  c++  java
  • Java【第四篇】基本语法之--循环

    循环语句

    功能

    在循环条件满足的情况下,反复执行特定代码

    循环语句的四个组成部分

    初始化部分(init_statement)
    循环条件部分(test_exp)
    循环体部分(body_statement)
    迭代部分(alter_statement)

    循环语句分类

    for 循环
    while 循环
    do/while 循环 

    for循环语句

    语法格式

    for (初始化表达式; 布尔值测试表达式; 更改表达式){
    语句或语句块;
    }

    应用举例

    package com.uncleyong;
    
    public class TestFor {
        public static void main(String[] args) {
            //从 1 打印到 100
    		for(int i = 1; i <= 100; i++){
    			System.out.println(i);
    		}
        }
    } 

    while循环语句

    语法格式

    [初始化语句]
    while( 布尔值测试表达式){
        语句或语句块;
        [更改语句;]
    }  

    应用举例

    package com.uncleyong;
    
    public class TestWhile {
        public static void main(String[] args) {
            int i = 1;
    
            while(i <= 100){
                System.out.println(i);
                i++;
            }
        }
    } 

    do/while循环语句

    语法格式 

    [初始化语句]
    do{
        语句或语句块;
        [更改语句;]
    }while(布尔值测试表达式);  

    应用举例

    package com.uncleyong;
    
    public class TestDoWhile {
        public static void main(String[] args) {
            //do ... while 一定会执行一次循环体.
            int j = 101;
            do{
                System.out.println("^^" + j++);
            }while(j <= 100);
        }
    } 

    几个循环的应用场景

    循环次数确定时一般使用for循环
    循环次数不确定时一般使用while和do...while循环

    特殊流程控制语句:break、continue

    break

    break语句用于终止某个语句块的执行,一般与if一起使用

    break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块

    label1: {   ……       
        label2: {   ……
            label3: {   ……
                     break label2;
                     ……
            }
        }
    }
    语法格式 
    { ……	 
        break;
    ……
    }
    应用举例
    public class TestBreak{
        public static void main(String args[]){
    	    for(int i = 0; i<10; i++){ 
    	     	if(i==3)
    		      break;	
    	    	System.out.println(" i =" + i);
    	    }
    	    System.out.println("Game Over!");
        }
    }
    

    continue

    continue语句用于跳过某个循环语句块的一次执行,也就是跳出本次循环,执行下一次循环,本次循环尚未执行完的代码不再执行

    continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环 

    语法格式
    { ……	 
        continue;
    ……
    }
    应用举例
    package com.uncleyong;
    
    public class TestContinue {
        public static void main(String [] args){
    
            //continue语句用于跳过某个循环语句块的一次执行
    
            for(int i = 1; i <= 100; i++){
                if(i % 2 != 0){
    
                    //break和continue之后不能有其他的语句,
                    //因为程序永远不会执行break 和 continue之后的语句。
                    continue;
    
    //                System.out.println("test");
                }
    
                System.out.println(i);
            }
        }
    }  

    特殊流程控制语句(break、continue)说明

    break只能用于switch语句和循环语句中。
    continue 只能用于循环语句中。
    标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。
    break和continue之后不能有其他的语句,因为程序永远不会执行break 和 continue之后的语句,否则编译出错。

    练习题(参考答案已放在Q群文件中)

    1、求1到100之间所有偶数的和。用for和while语句分别完成

    OuShu.java

    2、从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序

    TestCount.java

    3、打印 1-100 之间的所有素数

    SuShu.java

    4、分别打印如下两个直角三角形

    第一个:
    
    *
    ***
    *****
    *******
    
    
    
    第二个:
    
    ****
    ***
    **
    *
    

     

    5、打印等腰三角形

    6、【java笔试题】输入带*字符串,把*左移输出,其他字母按原顺序输出,例如:输入“as*c*gkl**o*p*h”,输出******ascgkloph

    此参考答案不是最优的

    package com.qzcsbj;
    
    import java.util.Arrays;
    import java.util.Scanner;
    
    /**
     * @create : 2020/3/13 21:10
     * @description : <描述>
     * @博客 : www.cnblogs.com/uncleyong
     * @QQ群 : 652122175
     * @公众号 : 全栈测试笔记
     */
    
    public class Test {
        public static void main(String[] args) {
            /**
             * 【java笔试题】输入带*字符串,把*左移输出,其他字母按原顺序输出,
             * 例如输入“as*c*gkl**o*p*h”,输出******ascgkloph
             */
            System.out.print("请输入带*字符串:");
            Scanner scanner = new Scanner(System.in);
            String str = scanner.nextLine();
            // String str = "as*c*g";
            System.out.println("移动前:" + str);
            char[] arr=str.toCharArray();
            for (int i=0;i<arr.length-1;i++){
                for (int j=1;j<arr.length-1-i;j++){
                    if (arr[j]=='*' && arr[j-1]!='*'){  // 把*左移
                        char temp = arr[j];
                        arr[j] = arr[j-1];
                        arr[j-1] = temp;
                    }
                }
                System.out.println("第"+ (i+1) +"轮冒泡:" + Arrays.toString(arr));
            }
            // System.out.println(Arrays.toString(arr));
            String s = "";
            for (int i=0;i<arr.length;i++){
                s+=arr[i];
            }
            System.out.println("移动后:" + s);
        }
    }
    

      

  • 相关阅读:
    containerd
    0/1 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }
    failed to pull image k8s.gcr.io/kube-controller-manage
    journalctl
    How to use Kata Containers and CRI (containerd plugin) with Kubernetes
    kubelet kubeadm kubectl install
    make an overlay with mount
    2018-2-13-不使用数据结构反转栈
    2018-8-10-卷积神经网络全面解析
    论分布式系统内的节点坏盘感知
  • 原文地址:https://www.cnblogs.com/uncleyong/p/9729189.html
Copyright © 2011-2022 走看看