欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java基础五

程序员文章站 2023-11-14 08:48:46
i1、While循环 2、do ... While循环 3、For循环 一、While /*while循环 语句格式: while(boolean表达式){ 语句块; } 执行顺序: 先判断boolean表达式的值,如果是true。就执行语句块。 再判断boolean表达式的值,如果是true。就执 ......

i1、While循环

2、do ... While循环

3、For循环

一、While

/*
while循环

语句格式:


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

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

*/

练习题系列:

  打印五次Hello World

Java基础五

  打印输出1~10

Java基础五

  求1~10的阶乘

Java基础五

  求100以内偶数的和

Java基础五

Java基础五

Java基础五

二、do ... While

/*
do-while的格式:

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

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

  练习题:

  用do-while打印三次helloworld

Java基础五

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

Java基础五

Java基础五

Java基础五

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

 Java基础五

Java基础五

//总结:

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

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


三、For循环

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

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

  练习题:

  打印三个Hello World:

Java基础五

Java基础五

Java基础五

Java基础五

重重瞅瞅这个题的思路

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

Java基础五

  接着提高效率:

Java基础五

Java基础五

  一个*****题:

Java基础五

答案:

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

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

Java基础五

Java基础五

 i++算到最后为

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

如果再加一得:

11111111    11111111   11111111   11111111   为负数

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

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

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

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

然后再一个一个的加一;

直到:如下:

Java基础五

Java基础五

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

Java基础五

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

  首先用  *    输入一个矩阵:

Java基础五

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

Java基础五

  99乘法表:

Java基础五

重点来,打印菱形:

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

这里以4为例:

Java基础五

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

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

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

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

 Java基础五

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

Java基础五

其实都可以。

Java基础五

  空心菱形:

Java基础五

Java基础五

Java基础五

  break 和continue

Java基础五

  标签:任意定义一个标识符在一个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都会发生变化,如下程序:

Java基础五

2、辗转相除法

实例:以8 和 10 为例:

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

 Java基础五

//练习二:水仙花数

Java基础五

Java基础五

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

Java基础五

 Java基础五

优化:

Java基础五