Java基础五

2018-07-16 02:38:50来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

i1、While循环

2、do ... While循环

3、For循环

一、While

/*
while循环

语句格式:


while(boolean表达式){
  语句块;
  }

  执行顺序:
    先判断boolean表达式的值,如果是true。就执行语句块。
    再判断boolean表达式的值,如果是true。就执行语句块。
    再判断boolean表达式的值,如果是true。就执行语句块。
    ……
    直到boolean表达式为false的时候,就结束了。

*/

练习题系列:

  打印五次Hello World

  打印输出1~10

  求1~10的阶乘

  求100以内偶数的和

二、do ... While

/*
do-while的格式:

do{
  语句块;
}while(boolean表达式);

  执行顺序:
  执行语句块,然后判断boolean表达式,如果为true。
  继续执行语句块,然后判断boolean表达式,如果为true。
  继续执行语句块,然后判断boolean表达式,如果为true。
  ……
  继续执行语句块,然后判断boolean表达式,如果为false。停止。
*/

  练习题:

  用do-while打印三次helloworld

  用do...while打印100以内所有的奇数

  打印100以内能被3整除,但是不能被5整除的数

 

//总结:

  //while和do-while的区别:
  //while先执行条件,然后执行循环体
  //do-while先执行循环体,后判断条件。

  //当第一次就不满足循环条件的情况下,while一次都不能执行,而do-while会执行一次。


三、For循环

/*
for循环
  格式:
  for(循环变量初始值设定;循环条件boolean值;每次循环之后执行的语句){
    循环体;
  }

执行过程:
  首先计算初始值设定。
  然后计算boolean值,如果为true,就执行循环体一次,然后执行“每次循环之后执行的语句”。
  然后计算boolean值,如果为true,就执行循环体一次,然后执行“每次循环之后执行的语句”。
  然后计算boolean值,如果为true,就执行循环体一次,然后执行“每次循环之后执行的语句”。
  ……
  然后计算boolean值,如果为false,就停下来了。
*/

  练习题:

  打印三个Hello World:

重重瞅瞅这个题的思路

首先打印出符合条件的内容,然后加入count计数,满6就换行:下面时复杂方法

  接着提高效率:

  一个*****题:

答案:

首先记得i++一定是正数吗?

这里用到了   >>>:无符号右移:无论最高位是0还是1,左边都补齐0.里面的思考

 i++算到最后为

01111111   11111111   11111111   11111111   为正数,补码和源码一样

如果再加一得:

11111111    11111111   11111111   11111111   为负数

说真的这个题真没意思!!!我来验证一下:

首先由上面的正数加一可以变成负数可得:2147483647+1=-2147483648

由此可知:2147483647+k+1=-(2147483648-k)

所以题目中是i++,计算的是3*i;也就是负数中最大三倍的(2147483648-k)。

然后再一个一个的加一;

直到:如下:

即:三倍的-1431655763,int强制转换是等于7的!!!!!!!!

 四、For For循环,即嵌套循环

  首先用  *    输入一个矩阵:

  然后输入由  *  组成的三角形:

  99乘法表:

重点来,打印菱形:

这个需要加点数学知识,如图:

这里以4为例:

要打印菱形,就是从上一个题目中,打印矩形星星中切除一部分星星。而如何切除呢?

就是从上图坐标中范围取值切除,每个星星都会对应一个横竖坐标值,即X、Y;也就是X、Y的不同取值范围中是显示空格还是显示星星的问题。

由上面分析可以得到for循环中的条件语句,代码就可以敲了。

这个是边长为4的菱形,输出“*”(星星)还是输出“ ”(空格)根据范围的变化而变化。

 

上面那个逻辑性不好,不算打印正确,下面才是真正的抠图。

其实都可以。

  空心菱形:

  break 和continue

  标签:任意定义一个标识符在一个for循环前【loop:for(){}】,在break等后面加上标签【break loop;】,即表示指定这个位置的for循环break.

   For循环练习题:

 //练习一:最大公约数与最小公倍数。

首先求最大公约数有两种方法:

1、更相减损术:

  以8和10 为例:大的减小的,直到两数相等

    eg:10-8=2      8-2=6    6-2=4    4-2=2     2==2   于是最大公约数就是2.

  最小公倍数就是两书相乘后除以最大公约数。

  a,b,c,d;初始这三个数,a,b代表要计算的,c代表中间转换需求值,d最重要,一开始就要用d表示出两数的乘积!!!!循环后a,b都会发生变化,如下程序:

2、辗转相除法

实例:以8 和 10 为例:

10 / 8 = 1 .....2           8 / 2 = 4 .......0       前面中得到0的那一次,除数就是最大公约数。

 

//练习二:水仙花数

//练习三:百钱百鸡问题

 

优化:

 

 

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:c++与java的一些不同点

下一篇:3.初识Cron表达式