本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用.

**转载请注明 出自 : luogg的博客园 ** 谢谢配合!

程序流程控制

  • 顺序结构
  • 分支结构:if-else,switch-case
  • 循环结构:while,do-while,for

if-else三种格式

  1. 1.
  2. if(true){
  3. 执行代码块;
  4. }
  5. 2.
  6. if(){
  7. }else{
  8. }
  9. 3.
  10. if(){
  11. }else if(){
  12. }
  13. ...
  14. else{
  15. }
  1. if-else的练习
  2. //输入小明的成绩,并输出相应成绩对应的奖励
  3. //创建一个Scanner类的对象
  4. Scanner sc=new Scanner(System.in);
  5. System.out.println("请输入小明的期末成绩");
  6. //调用此对象响应的方法,完成键盘输入的值得获取
  7. int score=sc.nextInt();
  8. if(score>100||score<0){
  9. System.out.println("你输入的数值有误,请重新输入");
  10. }else if(score==100){
  11. System.out.println("奖励一俩BMW");
  12. }else if(80<score&&score<=99){
  13. System.out.println("奖励一部iphone6s");
  14. }else if(60<score&&score<=80){
  15. System.out.println("奖励一本参考书");
  16. }else{
  17. System.out.println("什么都不奖励");
  18. }
  19. sc.close();
switch的用法
  1. switch(变量){
  2. case 1
  3. case 2:
  4. case 3:
  5. default
  6. }
  1. 根据变量的值,选择相应的case去判断,一旦满足case条件,就执行case的相应语句,如果没有break语句,会继续执行其下的case语句。
  2. default:是可选的,而且位置是灵活的。
  3. 变量可以是哪些类型?char,byte,short,int,枚举.
  4. case条件:其中条件只能是值,不能是取值范围。switch-case不能对区间进行判断。

for循环
  • for循环结构
  • 1.初始化条件
  • 2.循环条件
  • 3.迭代条件
  • 4.循环体
  1. public static void main(String[] args) {
  2. int j=1;
  3. for(System.out.println('a');j<3;System.out.println('b'),j++){
  4. System.out.println('c');//acbcb
  5. }
  1. //输出100以内所有偶数 并计算其和 并说出其偶数的个数
  2. int sum=0;
  3. int count=0;
  4. for(int i=1;i<=100;i++){
  5. if(i%2==0){
  6. System.out.println(i);
  7. sum+=i;
  8. count++;
  9. }
  10. }
  11. System.out.println("总和为"+sum);//2550
  12. System.out.println("100以内偶数的个数为"+count);//50
  13. }
  1. //编写程序,从1循环到150在每行打印一个值,并在3的倍数后边打印foo,
  2. //5的倍数后边打印biz,7的倍数后边打印baz
  3. for(int a=1;a<=150;a++){
  4. System.out.print(a);
  5. if(a%3==0){
  6. System.out.print("foo ");
  7. }
  8. if(a%5==0){
  9. System.out.print("biz ");
  10. }
  11. if(a%7==0){
  12. System.out.println("baz");
  13. }
  14. System.out.println();
  15. }

水仙花数

  1. //输出一个水仙花数,水仙花数就是一个3位数,
  2. //其各个位上的数字立方和其本身
  3. //例如:153=1*1*1+5*5*5+3*3*3
  4. for(int i=100;i<=999;i++){//遍历所有的三位数 456
  5. int j1=i/100;//百位
  6. int j2=(i-j1*100)/10;//十位
  7. int j3=i%10;//个位
  8. if(i==j1*j1*j1+j2*j2*j2+j3*j3*j3){
  9. System.out.print(i+" ");//153 370 371 407
  10. }
  11. }

while循环

  • 1.初始化条件
  • 2.循环条件
  • 3.迭代条件
  • 4.循环体
  1. 初始化条件
  2. while(循环条件){
  3. 循环体
  4. 迭代条件
  5. }
  • for循环与while循环可以相互转换。
  • while与for的区别:while的初始化条件定义在外边,for定义在内部,初始化条件在执行完循环以后还可以用,而for不可以用。
  1. // 100以内的偶数的输出,以及它们的和
  2. int i = 1;
  3. int sum = 0;
  4. while (i <= 100) {
  5. if (i % 2 == 0) {
  6. System.out.println(i);
  7. sum += i;
  8. }
  9. i++;
  10. }
  11. System.out.println(sum);

do-while(用的少)

  • 1.初始化条件
  • 2.循环条件
  • 3.迭代条件
  • 4.循环体
  1. 初始化条件
  2. do{
  3. 循环体
  4. 迭代条件
  5. }while(循环条件);
  • do-while与while的区别:do-while循环至少会执行一次

循环练习

  1. //从键盘读入个数为10个的整数,并判断读入的正数和负数的个数
  2. Scanner s = new Scanner(System.in);
  3. int a = 0;//记录正数的个数
  4. int b = 0;//记录负数的个数
  5. int c = 0;//记录0的个数
  6. for(int i = 1;i <= 10;i++){
  7. System.out.println("请输入第"+i+"个整数");
  8. int num = s.nextInt();
  9. if(num > 0){
  10. a++;
  11. }else if(num < 0){
  12. b++;
  13. }else if(num == 0){
  14. c++;
  15. }
  16. }
  17. System.out.println("正数的个数为"+a);
  18. System.out.println("负数的个数为"+b);
  19. System.out.println("0的个数为"+c);
  20. s.close();
  1. //从键盘输入个数不确定的数,并判断读入的正数和负数的个数,输入0时结束程序
  2. Scanner s = new Scanner(System.in);
  3. int a = 0;//记录正数的个数
  4. int b = 0;//记录负数的个数
  5. for(;;){
  6. System.out.println("请输入一个整数:");
  7. int num = s.nextInt();
  8. if(num > 0){
  9. a++;
  10. }else if(num < 0){
  11. b++;
  12. }else{
  13. break;
  14. }
  15. }
  16. System.out.println("正数的个数为:"+ a);
  17. System.out.println("负数的个数为:"+ b);
  18. s.close();
  • 无限循环for(;; ) while(true)
  • 一般情况下,在无限循环的内部要有程序终止的语句,break,若没有就是死循环了。

循环的嵌套使用

  1. /*
  2. *****
  3. *****
  4. *****
  5. */
  6. for (int j = 1; j <= 4; j++) {// 外层循环控制行数
  7. for (int i = 1; i <= 5; i++) {// 内层循环控制列数
  8. System.out.print("*");
  9. }
  10. System.out.println();
  11. }
  1. /*
  2. *
  3. **
  4. ***
  5. ****
  6. */
  7. for (int j = 1; j <= 4; j++) {
  8. for(int i = 1;i<=j;i++){
  9. System.out.print("*");
  10. }
  11. System.out.println();
  12. }
  1. /*
  2. ****
  3. ***
  4. **
  5. *
  6. */
  7. for (int j = 1; j <= 4; j++) {
  8. for(int i = 4;i>=j;i--){
  9. System.out.print("*");
  10. }
  11. System.out.println();
  12. }
  1. /*
  2. ----*
  3. ---* *
  4. --* * *
  5. -* * * *
  6. * * * * *
  7. -* * * *
  8. --* * *
  9. ---* *
  10. ----*
  11. */
  12. //上半部分
  13. for(int i = 1;i <= 5;i++){
  14. for(int j = 4;j >= i;j--){
  15. System.out.print(" ");
  16. }
  17. for(int k = 1;k <= i;k++){
  18. System.out.print("* ");
  19. }
  20. System.out.println();
  21. }
  22. //下半部分
  23. for(int i = 1;i <= 4;i++){
  24. for(int j = 1;j <= i;j++){
  25. System.out.print(" ");
  26. }
  27. for(int k = 4;k >= i;k--){
  28. System.out.print("* ");
  29. }
  30. System.out.println();
  31. }
  1. //打印九九乘法表
  2. for(int i = 1;i <= 9;i++){
  3. for (int j = 1; j <= i; j++) {
  4. System.out.print(j + "*" + i + "=" + j*i + "\t");
  5. }
  6. System.out.println();
  7. }

打印100以内所有的质数

  1. //打数印100以内所有质数
  2. //质数:除了1和他本身以外不能再被其他数整除
  3. boolean flag = false;
  4. for(int i = 2;i <= 100;i++){//实现100以内自然数遍历
  5. for(int j = 2;j < i;j++){
  6. if(i % j == 0){
  7. flag = true;
  8. }
  9. }
  10. if(flag == false){
  11. System.out.println(i);
  12. }
  13. flag = false;
  14. }
  1. 测试完成求 1-10w 所有质数 所用的毫秒数
  2. long start = System.currentTimeMillis();
  3. boolean flag = false;
  4. for(int i = 2;i <= 100000;i++){//实现100以内自然数遍历
  5. for(int j = 2;j < i;j++){
  6. if(i % j == 0){
  7. flag = true;
  8. }
  9. }
  10. if(flag == false){
  11. System.out.println(i);
  12. }
  13. flag = false;
  14. }
  15. long end = System.currentTimeMillis();
  16. System.out.println("完成操作所用的毫秒数为:"+ (end-start));//51305

费时太多,需要优化,首先在flag底下加break,然后将flag==false改为!flag,再将j<i变为j<Math.sqrt(i) 根号i;

  1. long start = System.currentTimeMillis();
  2. boolean flag = false;
  3. for(int i = 2;i <= 100000;i++){//实现100以内自然数遍历
  4. for(int j = 2;j <= Math.sqrt(i);j++){//判断根号i
  5. if(i % j == 0){
  6. flag = true;
  7. break;
  8. }
  9. }
  10. if(!flag){
  11. System.out.println(i);
  12. }
  13. flag = false;
  14. }
  15. long end = System.currentTimeMillis();
  16. System.out.println("完成操作所用的毫秒数为:"+ (end-start));//51305
  17. //加上break之后,4796,使用Math.sqrt()之后,270毫秒

break与continue

  1. /*
  2. * break:结束"当前"循环。
  3. * continue:跳出"本次"循环,继续下一次循环。
  4. */
  5. for (int i = 1; i <= 10; i++) {
  6. if(i % 4 == 0){
  7. //break;//1,2,3
  8. continue;//1,2,3,5,6,7,9,10
  9. }
  10. System.out.println(i);
  11. }
  • break和continue语句之后不能再添加其他语句,因为不可能被执行。

luogg_java学习_03_流程控制及循环结构的更多相关文章

  1. 051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1

    051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试--debug入门1 本文知识点: 程序调试--debug入门1 程序 ...

  2. 048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和

    048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例--阶乘的累加和 本文知识点:通过案例练习嵌套循环应用 案例练习--阶乘的累加和 案例题目 ...

  3. 046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项

    046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项 本文知识点:for循环的注意事项 for循环的注意事项 for循环有3个 ...

  4. 045 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 07 for循环应用及局部变量作用范围

    045 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 07 for循环应用及局部变量作用范围 本文知识点:for循环应用及局部变量作用范围 for循环 w ...

  5. 040 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 02 while循环的执行流程

    040 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 02 while循环的执行流程 本文知识点:while循环的执行流程 三种循环结构中的第一种--wh ...

  6. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  7. 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结

    053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...

  8. 052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试——debug2 多断点调试程序

    052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试--debug2 多断点调试程序 本文知识点: Eclipse下程序调 ...

  9. 050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句

    050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句 本文知识点:continue语句 continue语句 continue ...

随机推荐

  1. AutoMapper的简单使用

    接触AutoMapper已经有两年多的时间了,在ORM框架中,它使持久层对象与DTO对象之间的转换变得相当简单. 随着负责的项目的增多,使用的技术框架一多起来,很多具体的技术点难免记不清, 加上同时兼 ...

  2. Session自定义存储及分布式存储

    默认情况下,PHP 使用内置的文件会话保存管理器(files)来完成会话的保存.我们无需设置,PHP默认将session以文件的形式保存到服务器. 通过调用函数 session_start() 即可手 ...

  3. PHP面向对象06_异常处理

    oop06异常处理 2014-9-2 8:36:33 NotePad++ By jiancaigege 摘要: 1.异常处理 2.类中常用函数 异常处理 语法格式: try{ //捕获异常 }catc ...

  4. iOS-性能优化3

    iOS-性能优化3 UITableView性能优化与卡顿问题 1.最常用的就是cell的重用, 注册重用标识符 如果不重用cell时,每当一个cell显示到屏幕上时,就会重新创建一个新的cell 如果 ...

  5. Netty学习二:Java IO与序列化

    1 Java IO 1.1 Java IO 1.1.1 IO IO,即输入(Input)输出(Output)的简写,是描述计算机软硬件对二进制数据的传输.读写等操作的统称. 按照软硬件可分为: 磁盘I ...

  6. Lookup 组件异常

    Lookup组件有两个数据源,一个是上流组件的输出,一个是组件lookup的数据源,这个数据源是在Connection选项卡中进行配置.在开发package的过程中,我发现一个异常,当Lookup数据 ...

  7. 深入理解PHP内核(十一)函数-函数的内部结构

    原文链接:http://www.orlion.ga/330/ php的函数包括用户定义的函数.内部函数(print_r count…).匿名函数.变量函数($func = 'print_r'; $fu ...

  8. java坦克大战源码下载

    HJZGG:https://github.com/hjzgg/hjzgg_tank_java 解压之后运行可执行jar包即可!效果图如下: v 1.游戏开始 v 2.选择地图 v 3.开始游戏 v 4 ...

  9. 如何用Python寻找重复文件并删除

    在实际生活中,经常会有文件重复的困扰,即同一个文件可能既在A目录中,又在B目录中,更可恶的是,即便是同一个文件,文件名可能还不一样.在文件较少的情况下,该类情况还比较容易处理,最不济就是one by ...

  10. RAC Concept

    1. RAC的高可用性 RAC的高可用性主要包含以下几点: 1> 实现节点间的负载均衡. 2> 实现失败切换的功能. 3> 通过Service组件来控制客户端的访问路径. 4> ...