zoukankan      html  css  js  c++  java
  • 流程控制语句 if if..else while for do...while 数组

    流程控制语句的结构:
    if    

    if (条件语句){        执行语句;        ……}

    if...else (可以用三元运算转换符来改写,如:判断条件 ? 表达式1 : 表达式2)   
    if(判断语句{
       执行语句1;
        .....;
      }else{
      执行语句2;

      ......;
      }

     
    变量num值19 模以2为1,不等于0,判断条件不成立。执行else{}的语句。
     if...else if...else    
    if(判断条件1){

        执行语句1

      }else if(判断条件2){

        执行语句2

      }

         ....

      else if(判断条件n){

        执行语句n

      }else {

        执行语句n+1

      }

    判断条件1true时,运行 执行语句1,判断条件1false,继续执行判断条件2,结果为true则执行语句2,所有判断条件都为false,未满足,else后面{}中的执行语句n+1会执行

     

    选择结构if语句与三元运算转换

    三元运算符:判断条件 ? 表达式1 : 表达式2 当判断条件成立,结果为表达1 反之,表达式2
     循环语句while  (while与if区别:w反复进行条件判断,只要条件成立,{}一直执行,直到不成立,循环结束)
    while(循环条件){
    执行语句.......
    } {}是循环体,它是否执行取决于条件,当条件为true,体就执行,循环体执行完毕时会继续判断循环条件,直到循环条件为false,整个过程结束

     循环语句 for (用在循环次数已知情况下)
    格式:

    for(初始化表达式; 循环条件; 操作表达式){

            执行语句     ………}

    语法结构中,for后面包括3个部分,初始化表达式、循环条件、操作表达式,之间用";"隔开,{}是循环体
     变量i的初始值为1,在判断条件i<=4为true时,执行循环体sum+=i,执行完毕,会执行操作表达式 i++,i的值变为2,然后继续进行条件判断,开始下一次循环,直到i=5时,条件i<=4为false,结束循环,执行for循环后面的代码,打印“sum=10”
     
     
    循环do..whlie  
    do {
       执行语句.....}
    while(循环条件);  {}里面执行语句是循环体。do..while循环条件放在循环体放后面,循环体先执行一次,再根据循环条件决定是否继续执行
     
    While do..while区别
    循环条件不成立,while循环体一次都不执行,
    do..while 无条件执行一次再循环
    无限循环
    无限循环存在的原因是不知道循环多少次,根据条件,控制循环
    循环嵌套(99乘法表、内层 外层)
    用 * 打印直角三角形

    跳转 break  continue
    通过while循环打印x的值,当x的值为3时使用break语句跳出循环。因此打印结果中并没有出现“x=4”。
    2.标记
    break内层循环时,只能跳出内层循环,想让它跳出外层循环,需加标记 a:
     1  int i, j; // 定义两个循环变量
     2         aaa: for (i = 1; i <= 9; i++) { // 外层循环 标记aaa
     3             for (j = 1; j <= i; j++) { // 内层循环
     4                 if (i > 4) { // 判断i的值是否大于4
     5                     break aaa; // 跳出外层循环
     6                 }
     7                 System.out.print("*"); // 打印*
     8             }
     9             System.out.print("
    "); // 换行
    10         }
    11     }
    12 }
     
       外层for循环前面增加了标记“aaa”。当i>4时,使用break aaa;语句跳出外层循环
    3.continue语句(终止本次循环,执行下一次循环)
     1 //1-100内的奇数求和
     2 public class ContinueDemo {
     3     public static void main(String[] args) {
     4         int sum = 0; // 定义变量sum,用于记住和
     5         for (int i = 1; i <= 100; i++) {
     6             if (i % 2 == 0) { // i是一个偶数,不累加
     7                 continue; // 结束本次循环
     8             }
     9             sum += i; // 实现sum和i的累加
    10         }
    11         System.out.println("sum = " + sum);
    12     }
    13 }
    14 输出: 
    15 sum = 2500
    for循环让变量i的值在1~100之间循环,在循环过程中
    当i的值为偶数时,将执行continue语句结束本次循环,进入下一次循环。
    当i的值为奇数时,sum和i进行累加,最终得到1~100之间所有奇数的和,打印“sum = 2500”

     

    流程控制语句switch(与if不同的事用于具体的值,if是范围);
    选择结构switch语句:将表达式的值与目标值比较,满足则执行相应的执行语句;没有匹配的执行default后的语句;

    switch (表达式){

        case 目标值1:

            执行语句1

            break;

        case 目标值2:

            执行语句2

            break;

        ......

        case 目标值n:

            执行语句n

            break;

        default:

            执行语句n+1

            break;

    }

    数组的定义
    数据类型[] 数组名 =new 数据类型[元素个数或数组长度];
    int[ ] x = new int(100);
    int[ ] x;声明一个int[ ]类型的变量
    x = new int[ 100];//创建一个长度为100的数组
     
     
     
     
     
    数组内存图
     
     1    public class ArrayDemo01 {
     2        public static void main(String[] args) {
     3            int[] arr; // 声明变量
     4            arr = new int[3]; // 创建数组对象
     5            System.out.println("arr[0]=" + arr[0]); // 访问数组中的第一个元素
     6            System.out.println("arr[1]=" + arr[1]); // 访问数组中的第二个元素
     7            System.out.println("arr[2]=" + arr[2]); // 访问数组中的第三个元素
     8            System.out.println("数组的长度是:" + arr.length); // 打印数组长度
     9        }
     10    }

    第8行代码显示,三个元素初始值 0,因为自赋默认值是0,元素不同,默认值不同

     为数组元素赋值
    1 public class ArrayDemo02 { 2 public static void main(String[] args) { 3 int[] arr = new int[4]; // 定义可以存储4个整数的数组 4 arr[0] = 1; // 为第1个元素赋值1 5 arr[1] = 2; // 为第2个元素赋值2 6 // 下面的代码是打印数组中每个元素的值 7 System.out.println("arr[0]=" + arr[0]); 8 System.out.println("arr[1]=" + arr[1]); 9 System.out.println("arr[2]=" + arr[2]); 10 System.out.println("arr[3]=" + arr[3]); 11 } 12 }

    第3行代码定义了一个数组,此时数组中每个元素都为默认初始值0。第2、3行代码通过赋值语句将数组中的元素arr[0]和arr[1]分别赋值为1和2,而元素arr[2]和arr[3]没有赋值,其值仍为0,因此打印结果中四个元素的值依次为1、2、0、0。

    数组静态初始化

    1、类型[ ] 数组名 = new 类型[ ] {元素,元素,...};

    2、类型[ ] 数组名 = {元素,元素,元素...};

     
    数组的遍历 
    public class ArrayDemo04 {
        public static void main(String[] args) {
            int[] arr = { 1, 2, 3, 4, 5 }; // 定义数组
            // 使用for循环遍历数组的元素
            for (int i = 0; i < arr.length; i++) {
                System.out.println(arr[i]); // 通过索引访问元素
            }
        }
    }

    定义一个长度为5的数组arr,数组的角标为0~4。由于for循环中定义的变量i的值在循环过程中为0~4,因此可以作为索引,依次去访问数组中的元素,并将元素的值打印出来

    1.简述Scanner类及Random类的功能和使用方式?
    
    Scanner类功能:引用数据类型,获取用户键盘录入的数据
    
    方式:先在最顶部导包 
        import java.util.Scanner;
        数据类型 变量名 = new 数据类型();
        变量名.方法名();
    举例
    创建对象 Scanner sc=newScanner(System.in);
    调用方法:
        int i=sc.nextInt();接收录入的数字
        Strings=sc.next();接收录入的字符串 
    获取数字
        System.out.println("请输入一个数字");
        int n = sc.nextInt();
        System.out.println("n的值为" + n);
    获取字符串
        System.out.println("请输入一个字符串");
        String str = sc.next();
        System.out.println("str的值为" + str);
    
    
    Random类功能:产生多种数据类型的随机数
    
    
    顶部导包 import java.util.Random
    举例 创建
        Random 变量名 = new Random();
    
    产生0-100的随机数整数给i
        int i = r.nextInt(100);
    得到0.0-1.0范围的随机小数 赋值给d变量
        double d = r.nextDouble();
        System.out.println(i);
        System.out.println(d);
    
    
    2.if语句的格式有几种?注意事项是什么?分别在什么时候使用?
    
    三种 :()里放判断条件  执行语句放在{}
    if(判断条件){执行语句}
    if(){}else{}:如果满足某种条件,就进行某种处理,否则进行另一种处理
    if(){}else if(){}else if(){}...else{}:多种条件判断,进行多种不同处理
    
    第一种:if(条件表达式){
        执行语句
        }
    注意:
    1:if(条件表达式)其后没有分号。
     一般来说,有"{}"有没有";",有";"就没有"{}"
    2:if语句所控制的语句如果是一条语句,我们可以不写大括号;
    如果控制的是两条以上的语句,必须加大括号。
    if语句的控制体没有加大括号是其后跟的一条语句。
    建议:永远加上大括号。避免不必要的错误。
    第二种:if(条件表达式){
        执行语句1;
        }
        else{
        执行语句2;
        }
    注意:
    1:执行流程  判断条件表达式,为true,执行语句1,若为false ,执行语句2
    2:if可单用,有else必有if
    
    第三种:if(条件表达式){
        执行语句1;
        }else if(条件表达式){
        执行语句2;
        }
        .......
        else{
        执行语句n;
        }
     1:else可以省略,但是不建议。
    (1)它是第三种格式的组成部分。
    (2)你有可能没有判断完所有的情况,我们就可以使用else来完成特殊情况。
    2:执行流程
    格式很长,但它整体只是一条语句。
    不断的判断,只要有满足条件的条件表达式,就执行该判断处控制的语句体,执行完后。语
    
    句结束。
    当都不满足时候,执行else。
    3:if后面必须有条件表达式。
    else后面没有条件表达式。
    4:if语句的嵌套
    if语句里面的语句体还是if语句。
    
    
    3.for循环、while循环、do-while循环的格式是什么?简述执行流程及注意事项?
    
    for循环:for(初始化表达式; 循环条件; 操作表达式){
        执行语句
        ………
        }
    for关键字后面()中包括三部分:初始化表达式、循环条件和操作表达式,它们之间“;”分
    隔{}中的执行语句为循环体。
    
    while循环:while(循环条件){
            执行语句
            ………
           }
    当循环条件为true时,循环体就执行。执行完毕时会继续判断循环条件,如条件仍为true则
    
    继续执行,直到循环条件为false时,整个循环过程才结束。
    
    do-whiledo {
            执行语句
            ………
          } while(循环条件);
    循环体会无条件执行一次,然后再根据循环条件来决定是否继续执行。
    
    5.简述break、continue及循环标号的作用?
    break结束当前循环
    contiune 跳出本次循环
    在任何内循环内可以通过查找标号的方式来实现结束和挑传操作

    6.编写程序,生成5个1至10之间的随机整数,并打印结果到控制台。
    import java.util.Random;
    public class RandomDemo{
        public static void main (String args[]){
            for (int a = 0 ; a < 5 ; a++){
                System.out.println(new Random().nextInt(10)+1);
            }       
        }
    }
    8.编写程序,打印1到100之内的整数,但数字中包含7的要跳过

    代码1:
    import java.util.*;
    //打印1到100之内的整数,但数字中包含7的要跳过
    public class NumberDemo{
        public static void main (String[] args){
            for (int a = 1 ; a <= 100 ; a++){
                if(!String.valueOf(a).contains("7")){
                    System.out.print(a+" ");
                }
            }
        }
    }
    代码2:

    //打印1到100之内的整数,但数字中包含7的要跳过
    public class User {
        public static void main(String[] args) {
            int ge, shi;
            for (int a = 1; a <= 100; a++) {
                ge = a % 10;
                shi = a / 10 % 10;
                if (a < 10) {
                    if (!(a == 7)) {
                        System.out.print(a+" ");
                    }
                } else {
                    if (!(ge == 7 || shi == 7)) {
                        System.out.print(a+" ");
                    }
                }
            }
        }
    }

    代码3:
    public class User {
        public static void main(String[] args) {
            for (int a = 1 ; a <= 100; a++){
                if(a % 10 == 7 || a / 10 % 10 == 7){
                    continue;
                }
                System.out.println(a);
            }
        }
    }
    10.我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.01
    米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度。
    public static void main(String[] args) {
            double paperThick = 0.01;
            int count = 0;
            while (true){
                if (paperThick < 8848.0){
                    count++;
                    paperThick = paperThick * 2.0;
                    System.out.println("第"+count+"次折"+paperThick+"M");
                }else{
                    break;
                }
            }
            System.out.println("一共能折"+count+"次");
        }
    11.看程序写结果:请自己独立分析,先不要编译运行。
        第一题
        int x = 1,y = 1;

        if(x++==2 & ++y==2)
        {
            x =7;
        }
        System.out.println("x="+x+",y="+y);      
        //x=2 y=2
        ---------------------------------------------------
        第二题
        int x = 1,y = 1;
        if(x++==2 && ++y==2)
        {
            x =7;
        }
        System.out.println("x="+x+",y="+y);
        
        //x=2 y = 1
        ---------------------------------------------------
        第三题
        int x = 1,y = 1;

        if(x++==1 | ++y==1)
        {
            x =7;
        }
        System.out.println("x="+x+",y="+y);
        //x = 7 y = 2
        ---------------------------------------------------
        第四题
        int x = 1,y = 1;
        if(x++==1 || ++y==1)
        {
            x =7;
        }
        System.out.println("x="+x+",y="+y);

        //x = 7 y = 1
        ---------------------------------------------------
        第五题//b
        boolean b = true;
        if(b==false)
            System.out.println("a");
        else if(b)
            System.out.println("b");//true
        else if(!b)
            System.out.println("c");
        else
            System.out.println("d");

        ---------------------------------------------------
        
    12.需求:
        * 键盘录入x的值,计算出y的并输出。        
        * x>=3    y = 2 * x + 1;
        * -1<x<3    y = 2 * x;
        * x<=-1    y = 2 * x - 1;
    代码:
    public static void main(String[] args) {
            @SuppressWarnings("resource")
            int x = new Scanner(System.in).nextInt();
            System.out.println("y = " + (x >= 3 ? ((2 * x) + 1) : x > -1 && x < 3 ? 2 * x : x <= -1 ? ((2 * x) - 1) : ""));
        }

    13.键盘录入三个整数,并将三个数据中的最大值打印在控制台。
    代码:
    public static void main(String[] args) {
            @SuppressWarnings("resource")
            int x = new Scanner(System.in).nextInt();
            @SuppressWarnings("resource")
            int y = new Scanner(System.in).nextInt();
            @SuppressWarnings("resource")
            int z = new Scanner(System.in).nextInt();
            System.out.println("max = " + (Math.max(Math.max(x, y), z)));
        }
  • 相关阅读:
    Windows API 的数据类型与 Delphi 数据类型对照表
    Delphi 编译错误信息表
    Delphi中的容器类
    Delphi 快捷键
    代码折叠
    [转]Delphi中record的使用
    [转]常用公共函数单元
    Delphi 运行时错误信息表
    C#调用Win32 的API函数User32.dll
    [转]Delphi程序启动参数的读取
  • 原文地址:https://www.cnblogs.com/zs0322/p/10846067.html
Copyright © 2011-2022 走看看