循环语句

2022/7/27 23:25:41

本文主要是介绍循环语句,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

循环语句

1、循环的概念:

循环就是重复做一件事, 在程序中指的是重复执行某段代码.循环包括三大循环:while语句,do while语句,for语句。

2、死循环的概念:

死循环就是重复执行代码, 不会停止. 死循环会造成程序卡死甚至崩溃等问题, 我们不能写会造成死循环的代码.

3、循环的用处:

循环的用处非常广泛, 特别是对大量的数据进行操作的时候, 如:求若干个数之和; (重复做加法)

一、while循环语句

while循环语法格式:

while(表达式){

  执行代码;

}

注意:

1、表达式可以是常量,变量或者其他表达式,该表达式会被强制转换为boolean类型, 表达式就是循环的条件, 条件成立则进入括号{}里面执行代码,否则不进入;

2、执行代码可以有多行, {}所包含的称为循环体.

3、 表达式不要一直是true, 避免死循环.

4、while循环的顺序是: 先判断表达式是否为true, 若true则执行执行代码, 然后再继续判断表达式是否为true, …. 直到判断表达式为false才会跳出循环, 执行while后面的代码

while示例:

 

 

 

 

 

 

 

 

 二、do while循环语句

do-while循环语法格式:

do {

执行代码;

} while(表达式)

注意:

1、 do-while和while比较类似, 也有表达式和执行代码.

2、do-while和while的区别在于判断条件的先后不一样, while是先判断条件, 而do-while是先执行再判断; 所以不管do-while表达式的条件是否成立, 都至少会执行一次循环体.

do while示例:

计算1加到100的和:

 

 

 

while 和 do while的区别

1、while是先判断后执行,do while 先执行后判断

2、do while最少执行一次 while最少执行0次

常用while来写一些执行多次的内容(最少没有规定 ) do while(规定最少执行一次)

三、for循环语句

for循环语法格式:

for (表达式1; 表达式2; 表达式3) {

  执行代码;

}

注意:

1、表达式1: 可写循环初始值, (可以不填)

2、表达式2: 循环条件

3、表达式3: 循环增量(减量)

4, 两个分号必须写.

for循环示例:

计算1加到100的和:

 

 

 四、循环的嵌套(循环嵌套最多套两层O(n^2))

一个循环语句内又包含另一个完整的循环语句; 三种循环都可以相互嵌套; 而for循环嵌套for循环的使用会更频繁

循环嵌套示例:

打印一个*组成的矩形:

 

 

 打印三角形:

 

 

 五、时间复杂度(判断内容执行效率 依照次数计算)

1、O(1)(每次执行一遍 常数阶)

 

 

 2、O(logN)(两个值来决定 对数阶)

 

 

 3、O(n)(由对应的一个值决定 线性阶)

 

 

 4、O(nlogn)(循环嵌套对应的指数阶循环)

 

 

 5、O(n^2)(双层循环嵌套 平方阶)

 

 

 时间复杂度O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)

while的时间复杂度要低于for循环(算法的优化可以使用while来替代for)

六、break关键字

break的功能:

1、在switch语句中使流程跳出switch结构。

2、在循环语句中使流程跳出当前的循环

注意:

1、如果已执行break语句,就不会执行循环体中位于break后的语句。

2、在多层循环中,一个break语句只向外跳一层

break示例

1、判断一个数是不是合数(指自然数中除了能被1和他本身整除外,还能被其他的数整除(不包括0)的数)

 

 

2、判断一个数是不是素数(除了1和他本身外不能被其他数整除)

 

 七、continue关键字

continue的功能:

只能在循环语句中使用,使本次循环结束,即跳过循环体中下面尚未执行的语句,接着进行下次是否执行循环的判断。

注意:

1、continue语句只能用在循环里。

2、对于 while 和 do-while 循环,continue 语句执行之后的动作是条件判断;对于 for 循环,随后的动作是变量更新。

continue示例:

1、求1~100的;累加值,但是要跳过所有个位数为3的数。

 

 八、break和continue对比

 

 九、课后练习

1、关于while

(1)打印100以内7的倍数

 

 (2)打印100以内的奇数

 

 (3)打印100以内的所有的偶数和

 

 (4)打印图形

        // * * * * * * * * * *         // * * * * * * * * * *         // * * * * * * * * * *         // * * * * * * * * * *

2、for循环的练习

(1)一个新入职,月工资为2000元的员工,每年涨当年工资5%,20年后的月工资为多少?

 

 (2)山上有一口缸可以装50升水,现有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸装满?通过编程解决这个问题。

 

 

(3)打印100-200之间所有能被3或者7整除的数

 

 

(4)计算10的阶乘(1*2*3*4*5*6*7*8*9*10 n的阶乘1*2....*n)

 

 

(5)计算1+3+计5+.....+99的和

 

 

(6)99乘法表

 

 

(7)输出20~80之间能被3整除的整数,每行5个

 

 

(8)打印1000到2000之间所有的闰年,每行4个

 

 

(9)求:1-1/2+1/3-1/4...1/100

 

 

(10)输入两个数,求两个数的最小公倍数

 

 (11)输入两个值n a,如果n==3,a==2;输出2+22+222的值

 

 

(12)五位数中,堆成的数称为回文数,找出所有的回文数,如:12321

 

 

(13)求1!+2!+3!+4!+5!

 

 

(14)找出所有的水仙花数,三位数,各位立方等于该数本身。

        // 如:153=1^3+5^3+3^3

 

 

(15)任意输入两个数,如果第一个数小从第一个数打印到第二个数,如果第二个数小从第二个打印到第一个数

 

 

(16)输入两个数求最大公约数

 

 

(17)

宰相的麦子:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:"只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,....后面一格的麦子总是前一-格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王-想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么?

 

 

 3、break练习

(1)看代码判断打印的内容

 

 



这篇关于循环语句的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程