JavaSE之循环结构

Java中提供了3中循环结构

while循环
do...while循环
for循环

do{}while(); : do..while至少执行一次

public class DoWhileDemo1 {
    public static void main(String[] args) {
//      int i = 10; 
//      while(){}
//      while(i < 5) {
//          System.out.println("hello1");
//          i++;
//      }
        
//      do{}while(); : do..while至少执行一次
//      int j = 10;
//      do {
//          System.out.println("hello2");
//          j++;
//      }while(j < 5);
        
//      for(循环变量初始化;循环条件;循环变量步长)
//      1.循环变量初始化
//      2.判断是否满足循环条件
//      3.执行循环体
//      4.循环变量增加或减少
//      5.在回到第二步,如此往复
        for(int i = 0;i < 5;i++) {
            System.out.println("hello");
        }
    }
}

break和continue的使用

public class Demo4 {
    public static void main(String[] args) {
        // break的使用
        while(true) {
            Scanner scan = new Scanner(System.in);
            System.out.println("请输入选项:");
            System.out.println("1-------登录");
            System.out.println("2-------注册");
            System.out.println("3-----退出程序");
            int option = scan.nextInt();
            if(option < 0 || option > 3) {
                System.out.println("无效选项");
            }else {
                if(option == 1) {
                    System.out.println("登录成功");
                }else if(option == 2) {
                    System.out.println("注册成功");
                }else {
                    System.out.println("退出成功");
                    break;
                }
            }
        }
        System.out.println("欢迎下次再来!!!!");
    }
}
public class HomeWork_OP5 {
    public static void main(String[] args) {
        // 输出0-9之间的数,但是不包括5
        int i = 0;
//      while(i < 10) {
//          if(i != 5) {
//              System.out.print(i);
//          }
//          i++;
//      }
        
        while(i < 10) {
            if(i == 5) {
                i++;
//              跳过本次循环
                continue;
            }
            System.out.print(i);
            i++;
        }
    }
}

额外知识点

Debug调试

public class DebugDemo {
    public static void main(String[] args) {
        // 双击加断点,右键-->Debug as-->F6
        int num = 100;
        if(num < 50) {
            num++;
        }
        System.out.println(num);
    }
}

Scanner的使用问题

public class ScannerProblemDemo {
    public static void main(String[] args) {
        // 特殊情况:第一次获取的是数字,第二次获取是字符串
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入一个数字1");
        int num1 = scan.nextInt();
        System.out.println("请输入一个字符串2");
        scan.nextLine();
        String str2 = scan.nextLine();
        System.out.println(num1+","+str2);
        /*
         * 在控制台输入的所有数据都会进入内存
         * int num1 = scan.nextInt(); 
         * num1会将内存中的数据取走,但内存中还保留了一个enter
         * String str2 = scan.nextLine();str2直接就把上次留下的enter取走了
         * 所以没有给我们输入字符串的机会
         * 解决方式:先用scan.nextLine();把上次留下的enter取走
         */
    }
}

随机数

public class RandomDemo {
    public static void main(String[] args) {
        // 产生随机数
        double num1 = Math.random();//[0,1)
//      Scanner scan = new Scanner(System.in);
//      随机数类
        Random random = new Random();
//      random.nextDouble()     [0,1)的小数
//      random.nextInt(n)       [0,n)的整数
        double num2 = random.nextDouble();
        System.out.println(num2);
    }
}

循环嵌套

三角形和99乘法表

public class Demo2 {
    public static void main(String[] args) {
        // 用*画一个三角形
        /*
          *
          **
          ***
          ****
          *****
        
          1x1=1
          1x2=2 2x2=4
          1x3=3 2x3=6 3x3=9
          .....
        */
//      for(int i = 1;i <= 5;i++) {
//          // 画*
//          for(int j = 1;j <= i;j++) {
//              System.out.print("*");
//          }
//          // 换行
//          System.out.println();
//      }
        for(int i = 1;i <= 9;i++) {
            for(int j = 1;j <= i;j++) {
                System.out.print(j+"x"+i+"="+i*j+" ");
            }
            // 换行
            System.out.println();
        }
    }
}
public class Demo4 {
    public static void main(String[] args) {
        // 输出2-100之间的所有质数
        // 质数:只能被1和本身整除   2 3 5 7 11 13 17 19 23...
        for(int i = 2;i < 101;i++) {
            boolean b = true;
            // 判断是否是质数
            for(int j = 2;j < i;j++) {
                // 判断是否能整出
                if(i%j == 0) {
                    // 一旦整除,b=false,表示整除过
                    b = false;
                    break;
                }
            }
            // 根据b是true还是false,我们就知道内层循环是如何结束
            // 1.true --> 自然结束
            // 2.false --> false
            if(b) {
                System.out.println(i);
            }
        }
    }
}

练习题

public class Practice3 {
    public static void main(String[] args) {
        // 求s=a+aa+aaa+aaaa+….+aa...a的值,
        // 其中a是一个数字。例如2+22+222+2222,
        // a的值和加数个数n均从控制台获取
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入n");
        int n = scan.nextInt();
        System.out.println("请输入a");
        int a = scan.nextInt();
        int temp = a;
        int sum = 0;
        for(int i = 0;i < n;i++) {
            sum = sum + a;
            a = a * 10 + temp;
        }
        System.out.println(sum);
    }
}
public class Practice3 {
    public static void main(String[] args) {
        // 求s=a+aa+aaa+aaaa+….+aa...a的值,
        // 其中a是一个数字。例如2+22+222+2222,
        // a的值和加数个数n均从控制台获取
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入n");
        int n = scan.nextInt();
        System.out.println("请输入a");
        int a = scan.nextInt();
        int temp = a;
        int sum = 0;
        for(int i = 0;i < n;i++) {
            sum = sum + a;
            a = a * 10 + temp;
        }
        System.out.println(sum);
    }
}
public class Practice5 {
    public static void main(String[] args) {
        // 一球从100米高度自由落下,每次落地后反跳回原高度的一半;
        // 再落下,求它在第10次落地时,共经过多少米?第10次反弹多高
        double height = 100;
        double rt = 50;
        for(int i = 2;i <= 10;i++) {
            height = height + rt * 2;
            rt = rt/2;
        }
        System.out.println(height);
        System.out.println(rt);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容

  • 1 顺序语句 语句:使用分号分隔的代码称作为一个语句。 注意:没有写任何代码只是一个分号的时候,也是一条语句,...
    哈哈哎呦喂阅读 380评论 0 0
  • 循环简介 循环可以用于让一个程序重复地执行语句。 循环是用来控制语句块重复执行的一种结构。 循环的概念是程序设计的...
    Vinfai阅读 1,153评论 0 0
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 3,283评论 0 19
  • 姓名:胡心妍 公司:宁波塞纳电热电器有限公司 【日精进打卡第43天】 【知~学习】 《六项精进》 背诵5遍 共19...
    Cindy初色的美阅读 109评论 0 0
  • 多多峡谷地区处于青藏 高原腹地,平均海拔 4100米,属于纯牧业区, 人口5200人,8至14岁的学龄儿童约400...
    KZZM阅读 1,212评论 0 0