zoukankan      html  css  js  c++  java
  • java系统化基础-day02-运算符、选择结构、循环结构

    1.java中的运算符

      1 package com.wfd360.day02;
      2 
      3 
      4 import org.junit.Test;
      5 
      6 import java.math.BigInteger;
      7 
      8 /**
      9  * 1.算术运算符[掌握]
     10  * <p>
     11  * 2.自增自减[掌握]
     12  * <p>
     13  * 3.赋值运算[掌握]
     14  * <p>
     15  * 4.比较运算符[掌握]
     16  * <p>
     17  * 5.逻辑运算符[掌握]
     18  * <p>
     19  * 6.位运算符[了解]
     20  * <p>
     21  * 7.三目运算符[掌握]
     22  */
     23 
     24 public class Demo01 {
     25     /**
     26      * 1.算术运算符[掌握]
     27      * 1)加法(+) 加法   正号  字符串拼接
     28      * 2)减法(-) 减法 负号
     29      * 3)乘法 (*) 乘法
     30      * 4)除法(/) 除法
     31      * 整数(小数)相除的例子
     32      * 10/3 =3;  10.0/3=3.33333…
     33      * 0/0
     34      * 0.0/0.0
     35      * 结果是NaN ,任何的NaN都不等于自己(面试题)
     36      * 1.0/0.0
     37      * Infinity,表示无穷大
     38      */
     39     @Test
     40     public void test() {
     41         int i1 = 3 + 2 - 5 * 6;
     42         int i2 = 10 / 3;  // 3
     43         // 3.0 代表整数相除,将运算结果,转变为double
     44         double d1 = 10 / 3;
     45         System.out.println("d1=" + d1);
     46         //double d2 = 10 / 3.0; // 3.3333333333333335
     47         double d2 = 10.0 / 3; // 3.3333333333333335
     48         System.out.println("d2=" + d2);
     49         // 0/0  报错  java.lang.ArithmeticException: / by zero
     50         //int i3=0/0;
     51         // System.out.println("i3="+i3);
     52         //  结果是NaN ,任何的NaN都不等于自己(面试题)
     53         double d3 = 0.0 / 0;
     54         System.out.println(" d3=" + d3);
     55         double d4 = 1.0 / 0; // Infinity,表示无穷大
     56         System.out.println(" d4=" + d4);
     57     }
     58 
     59     /**
     60      * 取模(%) , 取余数
     61      * 案例:假设大学的一个寝室可以住6个人,那么计算1024个大学生一共需要多少个寝室? (本质就是生产中经常用到的分页算法)
     62      */
     63     @Test
     64     public void test2() {
     65         int n = 6;
     66         int m = 1024;
     67         //取余数
     68         int y = m % n;
     69         System.out.println("y=" + y);
     70         //=====================
     71         //如果余数为零那么,一共需要的寝室数=m/n;
     72         //如果余数 不 为零那么,一共需要的寝室数=(m/n)+1;
     73     }
     74 
     75     /**
     76      * 2. 自增自减[掌握]
     77      * ++(自增)     --(自减)
     78      * 自增自减只能够用于 变量,不能用于常量
     79      * 自增自减运算的优先级  比  算术运算符  高
     80      */
     81     @Test
     82     public void test3() {
     83         //===========基本使用==================
     84         int i = 3;  // 表示把3赋值给变量i
     85         i++;      //表示变量i的值加1,i的值变成4
     86         ++i;      //表示变量i的值加 1,i的值变成5
     87         System.out.println("i=" + i);
     88     }
     89 
     90     /**
     91      * 面试题1
     92      */
     93     @Test
     94     public void test4() {
     95         int i = 3;
     96         int j = i++;  // 先复制,在运输算
     97         // i等于多少,j等于多少?
     98         System.out.println("i=" + i);// 4
     99         System.out.println("j=" + j);// 3
    100     }
    101 
    102     /**
    103      * 面试题2
    104      */
    105     @Test
    106     public void test5() {
    107         int i = 3;
    108         int j = ++i;  // 先运算,在赋值
    109         // i等于多少,j等于多少?
    110         System.out.println("i=" + i);// 4
    111         System.out.println("j=" + j);// 4
    112     }
    113 
    114     /**
    115      * 面试题3
    116      */
    117     @Test
    118     public void test6() {
    119         int i = 3;
    120         i = ++i;  // 先运算,在赋值
    121         // i等于多少,j等于多少?
    122         System.out.println("i=" + i); // 4
    123         int j = 3;
    124         j = j++;
    125         System.out.println("j=" + j); // 3
    126     }
    127 
    128     /**
    129      * 面试题3
    130      * 破题关键点:
    131      * i++是先赋值在执行 自增
    132      * ++i 是先执行自增 在赋值
    133      */
    134     @Test
    135     public void test7() {
    136         int i = 3;
    137         //      3(4)  4(5)  5(6)
    138         int a = i++ + i++ + i++;
    139         //      7      8     9
    140         int b = ++i + ++i + ++i;
    141         //请问 a=?  b=? i=?
    142         System.out.println("a=" + a);
    143         System.out.println("b=" + b);
    144         System.out.println("i=" + i);
    145     }
    146 
    147     /**
    148      * 3. 赋值运算[简单,与平时的数学逻辑一样]
    149      * =    +=     -=     *=     /=    %=
    150      * 1)赋值符号的运算顺序?
    151      * 从右到左,把符号右边的值赋值到左边的变量中
    152      * 2)上面 后五个分别看成是一个整体: 例如 += 看成是一个符号,不要看成两个;
    153      */
    154     @Test
    155     public void test8() {
    156         //请先在每行的后面给出i的值,然后用断点观察i值得变换
    157         int i = 3;
    158         i += 2;// 表示把2 累加到变量 i 中
    159         i -= 1; // 表示把-1 累加到变量 i 中
    160         i *= 3; // 等价  i=i*3;   划重点:等价不是等于
    161         i /= 3; // 等价  i=i/3;
    162         i %= 3;  // 等价 i=i%3;
    163         System.out.println("i=" + i);
    164     }
    165 
    166     /**
    167      * 超级面试题
    168      */
    169     @Test
    170     public void test9() {
    171         short s = 3;
    172         s += 2; //正常
    173         System.out.println("s=" + s);
    174         //===========================
    175         short s2 = 3;
    176         // 语法错误,结果值是int,int不能自动转换为short
    177         // s2 = s2+2;
    178     }
    179 
    180     /**
    181      * 4.比较运算符[掌握]
    182      * ==    !=     >    <    >=    <=    instanceof
    183      * 规律:比较运算的结果是一个布尔类型的值(true 或false);
    184      * 举例:
    185      * 定义一个布尔表达式,打印输出
    186      * 特别说明:instanceof 是判断一个对象是否属于某种类型
    187      * 是否可以用于我们之前学习的基本数据类型
    188      */
    189     @Test
    190     public void test10() {
    191         System.out.println(1 == 2); //false
    192         System.out.println(1 <= 2); //true
    193         // instanceof
    194         //是否可以用于我们之前学习的基本数据类型  ==> 不可以
    195         // System.out.println( 1 instanceof int);
    196         System.out.println("爱老虎油" instanceof String); // true
    197     }
    198 
    199     /**
    200      * 5.逻辑运算符[掌握]
    201      * &    |     &&     ||   ^    !
    202      * 是应用于多个条件的组合判断。
    203      * 示例说明:
    204      * 例如小明参加2个学科的考试 java php
    205      * 1)java 和 php 同时考100分,奖励 欧洲十日游
    206      * 伪代码描述:java==100 并且 php==100
    207      * 2)java 和php,只要有一门考100分,奖励 奖励棒棒糖一个
    208      * 伪代码描述:java==100 或者 php==100
    209      * <p>
    210      * 逻辑运算的两边结果值都必须是什么类型?  布尔
    211      * <p>
    212      * &   :两边都为true ,结果为true
    213      * |    : 只要有一边为true,结果为true
    214      * && :   两边都为true ,结果为true
    215      * ||    : 只要有一边为true,结果为true
    216      * ^    : 两边不一样,结果为true ,否则为false,举个例子打印一下
    217      * !  : 逻辑非,举个例子打印一下
    218      */
    219     @Test
    220     public void test11() {
    221         int java = 100;
    222         int php = 100;
    223         int c = 90;
    224         int mysql = 80;
    225         // ||    : 只要有一边为true,结果为true
    226         System.out.println(java == 100 || php == 100); //true
    227         System.out.println(java == 100 || c == 100); //true
    228         System.out.println(mysql == 100 || c == 100); //false
    229         // && 两边都为true ,结果为true
    230         System.out.println(java == 100 && php == 100); //true
    231         System.out.println(java == 100 && c == 100); //false
    232         // 逻辑非
    233         System.out.println(java != 100); //false
    234         System.out.println(c != 100); // true
    235 
    236         // ^    : 两边不一样,结果为true ,否则为false,举个例子打印一下 (用的很少)
    237         System.out.println(java == 100 ^ php == 100); //false
    238         System.out.println(mysql == 100 ^ c == 100); //false
    239         System.out.println(java == 100 ^ c == 100); //true
    240     }
    241 
    242     /**
    243      * &&  ||   和   & |    区别?
    244      * 1) & | 既可以充当逻辑运算,也可以是位运算符,怎么区分是逻辑运算还是位运算?
    245      * 根据表达式的结果是否为 布尔类型 来判断
    246      * 2)双与  双或  具有短路行为  什么意思?
    247      * 举个例子 上面小明的考试的成绩 要求是两科都为100分,看到第一科低于100分之后没有必要再看第二科成绩
    248      * 代码表示:Java = 100  && php = 100   (java只考了5分)
    249      * 如果逻辑运算左边的值能够确定整个逻辑运算表达式的值,那么右边就不执行了,短路了。
    250      * && 何时短路 ?    左边表达式结果为false
    251      * ||  何时短路 ?    左边表达式结果为true
    252      * 思考:如何验证短路行为?
    253      * 提示:
    254      * 右边表达式用  自增自减,例如 ++i = 5
    255      * 或者使用一个编译正常,运行报错的表达式,例如 1/0
    256      */
    257     @Test
    258     public void test12() {
    259         int java = 5;
    260         int php = 100;
    261 
    262         // 区分 && 与 &
    263         System.out.println(java == 100 && (++php) == 100); // php=100  &&具有短路行为,左边为false时,不在执行右边
    264         System.out.println(java == 100 & (++php) == 100); // php=101
    265 
    266         php = 100;
    267         // 区分 || 与 |
    268         System.out.println(php == 100 || (++java) == 100); // java=5  ||具有短路行为,左边为true时,不在执行右边
    269         System.out.println(php == 100 | (++java) == 100); // java=6
    270         System.out.println("java=" + java + " php=" + php);
    271     }
    272 
    273     /**
    274      * 面试错误题
    275      * 例如:判断一个整数的变量 a里面的数据  在0-100之间
    276      * 正确写法: a>0   &&  a<100
    277      * 错误写法:   0<  a < 100  (java没有这种语法,不支持)
    278      */
    279     @Test
    280     public void test13() {
    281         int a = 10;
    282         System.out.println(a > 0 && a < 100);
    283 
    284         //System.out.println(0 < a < 100); 错误
    285     }
    286 
    287     /**
    288      * 十进制转成二进制
    289      * String s = Integer.toBinaryString(n)  //将十进制数转成字符串,例如n=5 ,s = "101"
    290      * <p>
    291      * 将字符串转成整形
    292      * int a = Integer.valueof("1002");  //当然s只能是数字类的字符串
    293      */
    294     @Test
    295     public void test14() {
    296         //十进制转成二进制
    297         String s = Integer.toBinaryString(5);
    298         System.out.println("s=" + s);
    299         //二进制转变为十进制
    300         BigInteger bi = new BigInteger("011", 2);    //转换为BigInteger类型
    301         int a = Integer.parseInt(bi.toString());
    302         System.out.println("a=" + a);
    303     }
    304 
    305     /**
    306      * 6.位运算符[了解]
    307      * &    |    ^     ~    <<      >>     >>>
    308      * 位运算就是 二进制的位进行运算。
    309      * 示例:比如计算 125+176 ,从数学的角度是怎么计算的?
    310      * 同理,位运算也类似,比如 3&4
    311      * <p>
    312      * 可以把1看成是true,把0看成是false
    313      * &  :与 位运算,两边为1,结果为1
    314      * |   :或 位运算,有一个为1,结果为1
    315      * ^  :  异或,两边不一样,就为1,否则为0
    316      * ~  :  取反,1变成0  ,0 变成1
    317      * << :  向左位移动,例如1<<3
    318      * >> :   向右位移动,例如8>>2
    319      * >>>:  无符号向右移动
    320      * <p>
    321      * 注意:
    322      * 正数的补码,反码,原码 都一样;
    323      * 负数的反码:符号为不变,其他位取反;
    324      * 负数的补码:它的反码+1;
    325      */
    326     @Test
    327     public void test15() {
    328         // &  :与 位运算,两边为1,结果为1
    329         System.out.println(20 & 30); //得到的是十进制数
    330         System.out.println("20的二进制:" + Integer.toBinaryString(20));
    331         System.out.println("           &");
    332         System.out.println("30的二进制:" + Integer.toBinaryString(30));
    333         System.out.println("----------------------------------------");
    334         System.out.println("            " + Integer.toBinaryString(20 & 30));
    335     }
    336 
    337     @Test
    338     public void test16() {
    339         // |   :或 位运算,有一个为1,结果为1
    340         System.out.println(20 | 30); //得到的是十进制数
    341         System.out.println("20的二进制:" + Integer.toBinaryString(20));
    342         System.out.println("           |");
    343         System.out.println("30的二进制:" + Integer.toBinaryString(30));
    344         System.out.println("----------------------------------------");
    345         System.out.println("            " + Integer.toBinaryString(20 | 30));
    346     }
    347 
    348     @Test
    349     public void test17() {
    350         //<< :  向左位移动,例如1<<3  , 左位易的本质运算是,假设 a<<b ,相当于数学中的运算 a乘以2的b次方
    351         System.out.println(2 << 3); //得到的是十进制数
    352         System.out.println("2的二进制:000" + Integer.toBinaryString(2));
    353         System.out.println("           <<3");
    354         System.out.println("----------------------------------------");
    355         System.out.println("           " + Integer.toBinaryString(2 << 3));
    356     }
    357 
    358     /**
    359      * 注意:
    360      * 正数的补码,反码,原码 都一样;
    361      * 负数的反码:符号为不变,其他位取反;
    362      * 负数的补码:它的反码+1;
    363      */
    364     @Test
    365     public void test18() {
    366         //~  :  取反,1变成0  ,0 变成1
    367         System.out.println(~(-5)); //得到的是十进制数
    368         System.out.println("原码:00000000000000000000000000000" + Integer.toBinaryString(5));
    369         System.out.println("反码:" + Integer.toBinaryString(-5));
    370         System.out.println("补码:00000000000000000000000000000" + Integer.toBinaryString(~(-5)));
    371     }
    372 
    373     /**
    374      * 7.三目运算符[掌握]
    375      * 语法格式: X ? Y : Z
    376      * 1)上面的三目运算整体看成是一个表达式,应该有一个结果值
    377      * 2)X ?  布尔类型的值或者结果为布尔类型的表达式
    378      * 3)Y  Z  ? 一般来说数据类型相同的值或者表达式
    379      * 4)运算的规则?
    380      * X 为true,就是 Y 的结果值 ( 冒号前面的表达式的值)
    381      * X为false,就是Z的结果值 ( 冒号后面的表达式的值)
    382      * x ? y : z
    383      * <p>
    384      * 注意:  不要受  ? 和    :  的干扰,它们只是一个固定语法格式而已
    385      */
    386     @Test
    387     public void test19() {
    388         //举例:找出两个整型变量中的最大值
    389         int a = 6;
    390         int b = 7;
    391         int c = a > b ? a : b;
    392         System.out.println("c=" + c);
    393         //举例 判断一个数是 奇数 还是 偶数
    394         int i = 9;
    395         System.out.println(i % 2 == 0 ? "偶数" : "奇数");
    396     }
    397 
    398 }
    View Code

    2.条件选择结构-if

      1 package com.wfd360.day02;
      2 
      3 
      4 import org.junit.Test;
      5 
      6 public class Demo02If {
      7     /**
      8      * if(判断条件){
      9      * 满足 判断条件(true),就执行此大括号里面的内容
     10      * }
     11      */
     12     @Test
     13     public void test1() {
     14         //案例:如果a>90,输出:优秀
     15         int a = 96;
     16         if (a > 90) {
     17             System.out.println("优秀");
     18         }
     19     }
     20 
     21     /**
     22      * if(判断条件A){
     23      * 满足 判断条件A(true),就执行此大括号里面的内容,后面的else不会执行
     24      * }else{
     25      * 前面的 判断条件A(false),执行else大括号里面的内容
     26      * }
     27      */
     28     @Test
     29     public void test2() {
     30         //案例:如果a>90,输出:优秀,否则输出:一般
     31         int a = 96;
     32         if (a > 90) {
     33             System.out.println("优秀");
     34         } else {
     35             System.out.println("一般");
     36         }
     37     }
     38 
     39     /**
     40      * if(判断条件A){
     41      * 满足 判断条件A(true),就执行此大括号里面的内容,后面的else-if不执行
     42      * }else if(判断条件B){
     43      * 满足 判断条件B(true),就执行此大括号里面的内容
     44      * }
     45      */
     46     @Test
     47     public void test3() {
     48         //案例:如果a>90,输出:优秀
     49         // 如果80<a<=90 ,输出: 良好
     50         int a = 96;
     51         if (a > 90) {
     52             System.out.println("优秀");
     53         } else if (a > 80) {
     54             System.out.println("良好");
     55         }
     56     }
     57 
     58     /**
     59      * if(判断条件A){
     60      * 满足 判断条件A(true),就执行此大括号里面的内容,后面的else-if不执行
     61      * }else if(判断条件B){
     62      * 满足 判断条件B(true),就执行此大括号里面的内容
     63      * }else{
     64      * 前面的if  esle-if 都不满足条件(false),执行此大括号里面的内容
     65      * }
     66      */
     67     @Test
     68     public void test4() {
     69         //案例:如果a>90,输出:优秀
     70         // 如果80<a<=90 ,输出: 良好
     71         // 否则,输出一般
     72         int a = 96;
     73         if (a > 90) {
     74             System.out.println("优秀");
     75         } else if (a > 80) {
     76             System.out.println("良好");
     77         } else {
     78             System.out.println("一般");
     79         }
     80     }
     81 
     82     /**
     83      * else if 可以有多个
     84      */
     85     @Test
     86     public void test5() {
     87         //案例:如果a>90,输出:优秀
     88         // 如果80<a<=90 ,输出: 良好
     89         // 如果70<a<=80, 输出: 合格
     90         // 否则,输出一般
     91         int a = 96;
     92         if (a > 90) {
     93             System.out.println("优秀");
     94         } else if (a > 80) {
     95             System.out.println("良好");
     96         } else if (a > 70) {
     97             System.out.println("合格");
     98         } else {
     99             System.out.println("一般");
    100         }
    101     }
    102 
    103     /**
    104      * 简写
    105      * if 后面的大括号如果不写,表示执行是后面的第一行代码(不建议这样写)
    106      */
    107     @Test
    108     public void test6() {
    109         //案例:如果a>90,输出:优秀
    110         int a = 96;
    111         if (a > 90)
    112             System.out.println("优秀");
    113     }
    114 
    115     /**
    116      * 练习(学编程有捷径,那就是多敲,疯狂的敲代码,不论是简单的还是复杂的代码)
    117      * 1.求出2个变量中的最大值
    118      * 2.判断一个数是否是3的倍数
    119      * 3.小明java 考试成绩  按等级分   A B C  D ,判断变量值在不同的范围的,打印输出不同的等级
    120      * 90~100 A等。
    121      * 80-89 B等。
    122      * 70-79 C等。
    123      * 60-69 D等。
    124      * 60以下E等。
    125      */
    126     @Test
    127     public void test7() {
    128         //自己动手写,写完之后给老师检查
    129     }
    130 }
    View Code

    3.条件选择结构-switch 

     1 package com.wfd360.day02;
     2 
     3 import org.junit.Test;
     4 
     5 /**
     6  * 条件选择结构-switch
     7  * 作用和if差不多,只是语法结构不一致而已。
     8  * <p>
     9  * <p>
    10  * switch(变量或者一个表达式){
    11  * case 变量的可能值1: 功能语句;break;
    12  * case 变量的可能值2: 功能语句;break;
    13  * case 变量的可能值3: 功能语句;break;
    14  * ........
    15  * default:功能语句;break;
    16  * }
    17  */
    18 public class Demo03Switch {
    19     /**
    20      * 案例:将数字1,2,3....7 输出对应的星期:周一,周二,周三,.....周末
    21      */
    22     @Test
    23     public void test1() {
    24         int week = 5;
    25         switch (week) {
    26             case 1:
    27                 System.out.println("周一");
    28                 break;
    29             case 2:
    30                 System.out.println("周二");
    31                 break;
    32             case 3:
    33                 System.out.println("周三");
    34                 break;
    35             case 4:
    36                 System.out.println("周四");
    37                 break;
    38             case 5:
    39                 System.out.println("周五");
    40                 break;
    41             case 6:
    42                 System.out.println("周六");
    43                 break;
    44             case 7:
    45                 System.out.println("周天");
    46                 break;
    47             default:
    48                 System.out.println("没有对应数字的星期");
    49         }
    50     }
    51 
    52     /**
    53      * 1) case的顺序(包括default) 可以是任意的,但是建议先按照case的值的大小顺序排列,default放最后
    54      * 2)执行顺序,是先依次找完所有的case,如果都不匹配才会执行default
    55      * 3) break的作用,结束当前的这个switch结构
    56      * 从第一个匹配的条件开始,到第一个break之间的所有case判断失效 (这个特点非常重要,结合下面的例子理解)
    57      * 在执行功能语句时,如果到末尾都没有break,自动结束,不会再循环回去。
    58      * 最后一个break 可以省略掉,但是建议还是写上
    59      * 4) case后面的值应该和变量的类型一致;
    60      * 5) switch中的()中的变量地方类型可以是哪些?
    61      * java5之前   :  byte short char int
    62      * java5支持   :   enum枚举  (面向对象部分学习了之后回头测试)
    63      * java7支持   :  String 类型
    64      */
    65     @Test
    66     public void test2() {
    67         //根据月份,输出春夏秋冬 ,从第一个匹配的条件开始,到第一个break之间的所有case判断失效 (这个特点非常重要,结合例子理解)
    68         int month = 2;
    69         switch (month) {
    70             case 1:
    71             case 2:
    72             case 3:
    73                 System.out.println("春天");
    74                 break;
    75             case 4:
    76             case 5:
    77             case 6:
    78                 System.out.println("夏天");
    79                 break;
    80             case 7:
    81             case 8:
    82 
    83             case 9:
    84                 System.out.println("秋天");
    85                 break;
    86             case 10:
    87             case 11:
    88             case 12:
    89                 System.out.println("冬天");
    90                 break;
    91             default:
    92                 System.out.println("月份数字错误");
    93                 break;
    94         }
    95     }
    96 }
    View Code

    4.java中的循环结构-while

      1 package com.wfd360.day02;
      2 
      3 import org.junit.Test;
      4 
      5 /**
      6  * Java中提供了3  种循环
      7  * while  do-while  for
      8  * 1.上面的3中循环功能都是一样的,只是语法结构不一样,很多时候是可以相互交换的
      9  * , 既然都差不多,为什么有多个呢?
     10  * 不同的循环结构,有不同的使用场景和优势
     11  * <p>
     12  * 2.在写循环代码之前呢?
     13  * 1)要做什么事情
     14  * 2)次数
     15  * 3)要写循环,必须知道循环的语法
     16  */
     17 public class Demo04While_循环 {
     18     /**
     19      * while 基本用法[掌握]
     20      * 语法格式:
     21      * while(条件(布尔类型的)){
     22      * // 循环体具体做什么事情
     23      * }
     24      * <p>
     25      * 执行流程
     26      * 1.一个循环可能会循环执行多次
     27      * 第一次判断条件true,继续执行
     28      * 第二次判断条件true,继续执行
     29      * 第三次判断条件true,继续执行
     30      * 。。。。。
     31      * 直到第n次判断条件false,终止循环
     32      * <p>
     33      * 为什么第一次 第二次是true 。。。 n次就是false?
     34      */
     35 
     36     /**
     37      * 条件可以是一个常量
     38      * 举个例子(条件为布尔值true)
     39      * <p>
     40      * 这个例子是死循环,小心电脑崩溃,启动后建议马上手动停止
     41      */
     42     @Test
     43     public void test1() {
     44         while (true) {
     45             System.out.println("------死循环中-------");
     46         }
     47     }
     48 
     49     /**
     50      * 一般我们使用一个变量来充当条件循环,
     51      * 举个例子:播放一首歌,循环播放10次
     52      * 1)定义一个整数的变量记录循环的次数
     53      * 2)循环一次,自增一次
     54      * 根据次数进行判断是否继续循环
     55      */
     56     @Test
     57     public void test2() {
     58         int i = 1;// 1. 初始值
     59         while (i <= 10) {// 2. i<==10 循环条件
     60             System.out.println("北京欢迎你----" + i);
     61             i++; //变化量,很重要,否则就是死循环
     62         }
     63     }
     64 
     65     /**
     66      * 写一段代码计算1-10的和。
     67      * 1)传统的做法
     68      * 1+2+3+4+5+6+7+8+9+10
     69      * 如果要求计算1-100 , 1-1000 这样写是否合理?
     70      * 可以动态的获得每一个加数
     71      * 2)使用while循环,每循环一次,把取到的加数累加起来
     72      * 3)在循环的外面定义一个变量用来放计算的和的值
     73      */
     74     @Test
     75     public void test3() {
     76         //案例:计算 1 +2+3...10
     77         int n = 1;
     78         int sum = 0;
     79         while (n <= 10) {
     80             sum += n;
     81             n++;
     82         }
     83         System.out.println("sum=" + sum);
     84     }
     85 
     86     /**
     87      * 练习:
     88      * 1.求出10以内2的倍数的数字 和 个数。
     89      */
     90     @Test
     91     public void test4() {
     92 
     93     }
     94 
     95     /**
     96      * 练习:
     97      * 2.求出 1-10的所有偶数的和
     98      */
     99     @Test
    100     public void test5() {
    101 
    102     }
    103 
    104     /**
    105      * do-while 基本用法[掌握]
    106      * do-while    先执行一次,再判断  (*****)
    107      * 语法格式:
    108      * do{
    109      * // 循环体
    110      * }while(条件);
    111      * <p>
    112      * 举例:循环10次
    113      * 和while区别?
    114      * 1)定义一个 布尔变量,默认值false
    115      * 2)将这个布尔变量放在 while  和 do-while 条件中,看有什么区别
    116      */
    117     @Test
    118     public void test6() {
    119         boolean b = false;
    120         System.out.println("-----执行while之前--------");
    121         while (b) {
    122             System.out.println("------正在执行while------------");
    123         }
    124         System.out.println("-----执行while之后--------");
    125 
    126         System.out.println("-----执行do-while之前--------");
    127         do {
    128             System.out.println("------正在执行do-while------------");
    129         } while (b);
    130         System.out.println("-----执行do-while之后--------");
    131     }
    132 
    133     /**
    134      * 案例:使用do-while  求出1-100的和
    135      */
    136     @Test
    137     public void test() {
    138 
    139     }
    140 }
    View Code

    5.java中的循环结构-for

      

  • 相关阅读:
    推荐系统入门笔记2--信息检索 Lucene
    Mybatis多个参数,其中有hashMap的写法
    Java中fastjson的toJSONString结果为空{}
    Linux中less命令出现ESC乱码
    关于博客
    【Uni-App】关于获取手机系统信息的项目实践
    mysql 服务列表找不到
    服务网格与Istio
    ARM架构服务器如何运行EasyNVR软件提示无法识别二进制文件排查及解决
    关于EasyNVR拉流摄像头的视频流存在视频流锁定机制的问题说明
  • 原文地址:https://www.cnblogs.com/newAndHui/p/10855474.html
Copyright © 2011-2022 走看看