Java学习day03-选择结构与循环结构

选择结构与循环结构

    • 今日目标:
    • 1.程序的流程结构
    • 2.认识流程图
    • 3.复杂条件的if选择结构
    • 4.if-else结构
    • 5.多重if选择结构
    • 6.嵌套if选择结构
    • 7.switch的用法
    • 8.代码块
    • 作业:
  • 循环结构
    • 今日目标:
    • 1.while循环
    • 2.do-while
    • 3.While 和 do -while 的区别
    • 4For循环:
    • 5跳转语句break和continue
    • 6.作业:

今日目标:

1.If分支结构
2.Switch分支结构

1.程序的流程结构

顺序结构 :体现在程序进入某一个方法后,从上往下执行。
选择结构 :今天学
循环结构 :下次课学
1.基本if选择结构
1.格式
1>2 || 2>3
Java学习day03-选择结构与循环结构_第1张图片

2.流程图
Java学习day03-选择结构与循环结构_第2张图片

案例:1.如果我能看得见,生命也许完全不同。
2.如果我有5000元,我就去云南旅游。
3…如果你考试比我分数高,我就告诉老师你作弊。

 private static void text01() {
        Scanner sc=new Scanner(System.in);
        boolean a;
        int b;
        double c,d;

        System.out.println("请输入 看得见true或看不见false");
        a=sc.nextBoolean();
        if(a){
            System.out.println("如果我能看得见,生命也许完全不同。");
        }else {
            System.out.println("这里漆黑一片。");
        }

        System.out.println("请输入数值");
        b=sc.nextInt();
        if(b>5000){
            System.out.println("去云南旅游。");
        }else {
            System.out.println("太穷了,家里呆着。");
        }

        System.out.println("请输入两个分数:");
        c=sc.nextDouble();
        d=sc.nextDouble();
        if(c>d){
            System.out.println("你考试比我分数高,我要告诉老师你作弊。");
        }else {
            System.out.println("我就知道,你不行。");
        }
    }

Java学习day03-选择结构与循环结构_第3张图片

2.认识流程图

Java学习day03-选择结构与循环结构_第4张图片

3.复杂条件的if选择结构

条件中参杂着逻辑运算符
案例:1.如果我有5000元,空气污染指数<100,我就去云南旅游。
2.如果我身高1.8m,视力1.5,我就可以去当飞行员。
3.如果小明语文分数大于60,并且数学大于70;或者他的钢琴课大于80,就可以回家吃冰淇淋。

 private static void text02() {
        double a,b,c,d,e,f,g;
        Scanner sc2=new Scanner(System.in);

        System.out.println("请输入财产和空气污染指数");
        a=sc2.nextDouble();
        b=sc2.nextDouble();
        if (a>=5000&&b<=100){
            System.out.println("我去云南旅游");
        }else {
            System.out.println("去不了");
        }

        System.out.println("请输入你的身高和视力");
        c=sc2.nextDouble();
        d=sc2.nextDouble();
        if (c>=1.8&&d>=1.5){
            System.out.println("可以当飞行员");
        }else{
            System.out.println("当不了飞行员");
        }

        System.out.println("请输入语文成绩,数学成绩,钢琴成绩");
        e= sc2.nextDouble();
        f= sc2.nextDouble();
        g= sc2.nextDouble();
        if (e>=60&&f>=70||g>=80){
            System.out.println("可以回家吃冰激凌");
        }else{
            System.out.println("不能回家吃冰淇淋");
        }

    }

Java学习day03-选择结构与循环结构_第5张图片

4.if-else结构

如果,,,,否则,,,,

1.在某种情况下(运算后有一个具体的结果),三元运算符可以看成是if else的简写。
Java学习day03-选择结构与循环结构_第6张图片

2.两个结果互斥的基本if结构的合并
3.案例:
1.如果孙悟空在五行山下压了500年,唐僧就会带他去西天取经,否则还得继续服刑。
2.如果师徒四人经历了九九八十一难,就可以修成正果,否则师父还要被妖精抓走。
3.如果小明考试大于60分,回家可以吃饭,否则回家挨打。

 private static void text03() {
        Scanner sc3=new Scanner(System.in);
        System.out.println("请输入被压年数");
        int a=sc3.nextInt();
        if(a>=500){
            System.out.println("可以去取经");
        }else {
            System.out.println("继续服刑");
        }

        System.out.println("师徒四人经历的难数");
        int b=sc3.nextInt();
        if (b>=81){
            System.out.println("可以修成正果");
        }else {
            System.out.println("师傅被妖精抓走了");
        }

        System.out.println("请输入小明的成绩");
        double c=sc3.nextDouble();
        if (c>=60){
            System.out.println("可以回家吃饭");
        }else {
            System.out.println("回来挨打");
        }

    }

5.多重if选择结构

思考:最终结果会执行多少行?
多重if选择结构,最终只会执行一种结果,执行完后,马上跳出该选择结构,不会继续往下执行。
Java学习day03-选择结构与循环结构_第7张图片

1.格式:If- else if -else
2.逻辑分析:
程序面临的选择在3个或以上。
一旦进入了某一个选择,将不再执行后面的选择。意味着程序只能进入一个选择里面。
3.案例:
1.中国的歼20服役数量大于100架,将无敌于天下;
如果大于50架,可以排名世界第二;
如果大于30架,可以排名世界前五;
否则,恐怕要被小日本欺负了。
2.如果小明java考试成绩大于90分,学校奖励飞机一架,
如果大于80分,奖励坦克一辆,
如果大于60分,奖励拖拉机一辆,
否则留级重考。

6.嵌套if选择结构

针对有前提条件的情况,也就是条件有层级包含关系。
案例:
1.在全校举行的100米赛跑中,如果跑出10秒的成绩,进入决赛,如果是男生,进入男子队,如果是女生,进入女子队。
2.在厚溥的学员,顺利完成结业考试(>60),允许毕业,找到工作(true),出去挣钱,没有找到,回来继续学习。

 private static void text04() {
        Scanner sc4=new Scanner(System.in);
        System.out.print("请输入比赛成绩:");
        float a=sc4.nextFloat();
        if(a<=10){
            System.out.println("进入决赛");
            boolean b;
            System.out.println("男生请输入true,女生请输入false");
            b=sc4.nextBoolean();
            if (b==true){
                System.out.println("进入男子队");
            }else if (b==false){
                System.out.println("进入女子队");
            }

        }else {
            System.out.println("淘汰");
        }

        System.out.print("请输入考试成绩:");
        double c=sc4.nextDouble();
        if (c>=60){
            System.out.println("允许毕业,去找工作");
        }else if (c<60){
            System.out.println("回来继续学习");
        }

    }

7.switch的用法

1.案例:
某新型彩票中奖规则:猜中6个球,一等奖,5个球,二等奖,4个球,三等奖,否则没有中奖。

private static void text06() {
        Scanner sc6=new Scanner(System.in);
        System.out.println("请输入你猜中的球数");
        int num=sc6.nextInt();
        switch(num){
            case 6:
                System.out.println("一等奖");
                break;
            case 5:
                System.out.println("一等奖");
                break;
            case 4:
                System.out.println("一等奖");
                break;
            default:
                System.out.println("没有中奖");
                break;
        }
    }

Java学习day03-选择结构与循环结构_第8张图片
注意两个细节:1.任何一种情况,都建议带上break ,如果忘记了,会继续往下执行
2.default可以放在任意位置,也建议带上break,如何不加break,建议放在末尾
3.switch不支持long类型

4.switch不能使用continue

2.理解:多重if在等值判断的情况下作形式上的改版和演化:
1.Select which:选择哪一个?
2.提取公因式
3.只能选择多种结果中的一种,故每一种结果执行完后要跳出结构,即break;
3.特点:条件为等值判断
4.注意:忘记写break会怎样?
程序会从匹配的条件一直往下执行。
5.补充:jdk7版本及更高版本,支持String类型和枚举类型的判断。

总结:
根据不同的条件和选择的情况现作出以下分类讨论:
1.一个条件一种选择结果:
基本if选择结构
2.多个条件一种选择结果:
复杂条件if选择结构(通过逻辑运算符把多个条件判断连接起来)
3.一个条件,2种选择结果:
If - else
4.一个条件,3种以上选择结果:
If else if … else(范围条件判断)
5.多个条件,存在前提条件的情况:
嵌套if结构
6.在第4种情况中,条件判断为等值判断,而不是范围判断的情况下,一般使用
Switch

8.代码块

什么是代码块?
每一个代码块有它的作用域 ,相当于一个局部的小天地,小环境。
{ }
不能在外面调用代码块里面的变量。

作业:

1.编写程序,用户输入一个1~7的数字,输出对应的星期。

private static void one() {
        Scanner sc1=new Scanner(System.in);
        System.out.println("请输入数字1-7");
        int num=sc1.nextInt();
        switch(num){
            case 1:
                System.out.println("今天是星期"+num);
                break;
            case 2:
                System.out.println("今天是星期"+num);
                break;
            case 3:
                System.out.println("今天是星期"+num);
                break;
            case 4:
                System.out.println("今天是星期"+num);
                break;
            case 5:
                System.out.println("今天是星期"+num);
                break;
            case 6:
                System.out.println("今天是星期"+num);
                break;
            case 7:
                System.out.println("今天是星期日");
                break;
            default:
                System.out.println("输入错误,没有星期"+num+"这个日期");
                break;
        }
    }

Java学习day03-选择结构与循环结构_第9张图片

2.用户输入一个月份数,判断该月份属于哪个季节,并输入结果。(3,4,5春季,6,7,8夏季, 9,10,11秋季, 12,1,2冬季)

 private static void two() {
        Scanner sc2=new Scanner(System.in);
        System.out.print("请输入月份数:");
        int a1=sc2.nextInt();
        switch(a1){
            case 3: ;
            case 4: ;
            case 5:
                System.out.println("现在是春季");
                break;
            case 6: ;
            case 7: ;
            case 8:
                System.out.println("现在是夏季");
                break;
            case 9: ;
            case 10: ;
            case 11:
                System.out.println("现在是秋季");
                break;
            case 12: ;
            case 1: ;
            case 2:
                System.out.println("现在是冬季");
                break;
            default :
                System.out.println("没有这个季节");
                break;

        }
    }

Java学习day03-选择结构与循环结构_第10张图片

  1. 要求用户输入一个四位数,如果用户输入不是四位数,将提示错误信息,如果是四位数,将这个四位数的个,十,百,千位的数字单独输出来,并将他们的和求出来!
    例:用户输入2045,输出结果为:个位:5,十位:4,百位:0,千位:2,和为:11
 private static void three() {
        Scanner sc3=new Scanner(System.in);
        System.out.println("请输入四位数:");
        int a=sc3.nextInt();
        if (a>999||a<10000){
            int b=a%10,c=(a%100)/10,d=(a/100)%10,e=a/1000;
            System.out.println("个位:"+b+"  十位:"+c+"  百位:"+d+"  1千位:"+e);
            System.out.println("和为:"+(b+c+d+e));
        }else{
            System.out.println("输入错误");
        }
    }

Java学习day03-选择结构与循环结构_第11张图片

  1. 某公司即将为员工买保险,要求如下:已婚的男、女性都可以买保险,未婚男性25岁以下不提供保险,25岁以上(包括)提供保险,未婚女性22岁以下不提供保险,22岁以上(包括)提供保险,请用程序实现以上功能,接受员工的信息,显示公司是否为他提供保险,并显示原因(如:因为已婚,公司为你提供保险;公司不能为你提供保险,因为未婚男性在25岁以上才能提供保险,已未婚和性别都用0和1表示)
 private static void four() {
        Scanner sc4=new Scanner(System.in);
        int a;
        int b,c,d,e,f;
        System.out.println("请输入数字,男 0,女 1");
        a=sc4.nextInt();
        if(a==0){
            System.out.println("请输入是否已婚,已婚 1,未婚 0");
            b=sc4.nextInt();
            if (b==1){
                System.out.println("因为已婚,公司为你提供保险");
            }else {
                System.out.println("请输入年龄:");
                c=sc4.nextInt();
                if (c>=25){
                    System.out.println("应为年龄到25,公司可以为你提供保险");
                }else {
                    System.out.println("应为年龄没到25,公司不能为你提供保险");
                }

            }
        }else{
            System.out.println("请输入是否已婚,已婚 1,未婚 0");
            d=sc4.nextInt();
            if (d==1){
                System.out.println("因为已婚,公司为你提供保险");
            }else {
                System.out.println("请输入年龄:");
                e=sc4.nextInt();
                if (e>=22){
                    System.out.println("应为年龄到22,公司可以为你提供保险");
                }else {
                    System.out.println("应为年龄没到22,公司不能为你提供保险");
                }

            }

        }

    }

Java学习day03-选择结构与循环结构_第12张图片
Java学习day03-选择结构与循环结构_第13张图片

  1. 用A,B,C等级对学生的的成绩分类, 其中0 - 59是A, 60 – 80是B,81 – 100 是C等级,请用代码实现该功能,判断某位同学的分数等级,同学的的分数由用户输入
private static void five() {
       /* 用A,B,C等级对学生的的成绩分类, 其中0 - 59是A, 60 – 80是B,81 – 100 是C等级,
            请用代码实现该功能,判断某位同学的分数等级,同学的的分数由用户输入*/
        Scanner sc5=new Scanner(System.in);
        System.out.println("请输入你的分数0-100");
        double a=sc5.nextDouble();
        if(a<60){
            System.out.println("你的成绩等级是A");
        }else if (a<81){
            System.out.println("你的成绩等级是B");
        }else {
            System.out.println("你的成绩等级是C");
        }
    }

Java学习day03-选择结构与循环结构_第14张图片

  1. 某超市进行促销活动,规则如下:如果是本超市的会员,购买的商品总价在100元以上,八折优惠;如果是会员但商品总价在100元以下9折优惠;如果非会员商品总价在100以上九折优惠;如果非会员商品总价在100以下,不打折;询问用户是否是会员(0和1代表),和商品的总价,根据答案判断折扣额以及最终要付款的金额
 private static void six() {
        Scanner sc = new Scanner(System.in);
        System.out.println("您是否是会员输入0是,输入1不是:");
        int hy=sc.nextInt();
        System.out.println("你的商品总价是:");
        double p=sc.nextDouble();
        if(hy!=0&&p>100){
            double z=p*0.9;
            double k=p-z;
            System.out.println("你优惠了:"+k+",最终付款:"+z);
        }else if(hy!=0&&p<100){
            System.out.println("你最终付款:"+p);

        }else if(hy!=1&&p>100){
            double z1=p*0.8;
            double k=p-z1;
            System.out.println("你优惠了:"+k+",最终付款:"+z1);

        }else if(hy!=1&&p<100){
            double z2=p*0.9;
            double k=p-z2;
            System.out.println("你优惠了:"+k+",最终付款:"+z2);

        }
    }

Java学习day03-选择结构与循环结构_第15张图片

  1. 判断用户输入的年份是不是闰年,接受用户输入的年份后,首先要判断数字是不是正确的年份,年份是四位数,闰年的条件是符合下面二者之一:①能被4整除,但不能被100整除;②能被4整除,又能被400整除。
 private static void seven() {
        Scanner sc7=new Scanner(System.in);
        System.out.println("请输入四位数的年份:");
        int a=sc7.nextInt();
        if ((a%4==0&&(a%100)!=0)||a%400==0){
            System.out.println("是闰年");
        }else {
            System.out.println("不是闰年");
        }

    }

Java学习day03-选择结构与循环结构_第16张图片

  1. 判断某个变量里存放的字母是不是元音字母(aoeiu)
private static void eight() {
        Scanner sc8=new Scanner(System.in);
        System.out.println("请输入字母:");
        String a1=sc8.next();
        switch (a1){
            case "a": ;
            case "e": ;
            case "i": ;
            case "o": ;
            case "u":
                System.out.println("是元音字母");
                break;
            default:
                System.out.println("不是元音字母");
                break;

        }
    }

Java学习day03-选择结构与循环结构_第17张图片

  1. 用代码实现以下的本周食谱:周一:鸡蛋 周二:鱼 周三:青菜 周四:牛肉 周五: 虾 周六:汉堡 周天:鸡翅,先询问用户今天是星期几,接受用户的答案后,判断输出今天的食谱
 private static void nine() {
        Scanner sc9=new Scanner(System.in);
        System.out.println("今天是星期几:");
        int a=sc9.nextInt();
        switch(a){
            case 1:
                System.out.println("鸡蛋") ;
                break;
            case 2:
                System.out.println("鱼");
                break;
            case 3:
                System.out.println("青菜");
                break;
            case 4:
                System.out.println("牛肉");
                break;
            case 5:
                System.out.println("虾");
                break;
            case 6:
                System.out.println("汉堡");
                break;
            case 7:
                System.out.println("鸡翅");
                break;
            default:
                System.out.println("出错了");
                break;
        }
    }

Java学习day03-选择结构与循环结构_第18张图片

  1. 接受用户输入的四个数字a,b,c,d,将四个数中的最大值求出来(例如输出结果为:a的值为20,a最大)!
private static void ten() {
        Scanner sc10=new Scanner(System.in);
        System.out.println("请输入四个整数");
        int a=sc10.nextInt();
        int b=sc10.nextInt();
        int c=sc10.nextInt();
        int d=sc10.nextInt();
        int max;
        max=a>b?a:b;
        max=max>c?max:c;
        max=max>d?max:d;
        System.out.println("最大的值为:"+max);
        if (max==a){
            System.out.println("a的值为"+a+",a最大");
        } if (max==b){
            System.out.println("b的值为"+b+",b最大");
        } if (max==c){
            System.out.println("c的值为"+c+",c最大");
        } if (max==d){
            System.out.println("d的值为"+d+",d最大");
        }
      /*  Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数:");
        int a1=sc.nextInt();
        System.out.println("请输入第二个数:");
        int a2=sc.nextInt();
        System.out.println("请输入第三个数:");
        int a3=sc.nextInt();
        System.out.println("请输入第四个数:");
        int a4=sc.nextInt();
        if(a1>a2&&a1>a3&&a1>a4){
            System.out.println("a的值为"+a1+",a最大");
        }else if(a2>a1&&a2>a3&&a2>a4){
            System.out.println("b的值为"+a2+",b最大");
        }else if(a3>a1&&a3>a2&&a3>a4){
            System.out.println("c的值为"+a3+",c最大");
        }else if(a4>a3&&a4>a2&&a4>a1){
            System.out.println("d的值为"+a4+",d最大");

        }*/
    }

Java学习day03-选择结构与循环结构_第19张图片

预习内容:
循环

循环结构

今日目标:

while循环
do-while循环
for循环

1.while循环

循环变量:记录循环的次数
循环条件:决定是否还要继续下去,循环变量的范围(上限,下限)
循环体:重复性的工作

一.当我们需要重复做一件事情时,可以用循环来解决。参考ppt 6页
二.While循环的格式和步骤:(画流程图)
1.定义循环变量,并初始化
2.While作条件判断,执行循环或跳出循环。
三.案例:
1.某学员为表决心,决定抄写100遍“好好学习,天天向上。”
2.输入小明的考试成绩,如果及格,奖励钢笔一支,否则继续学习和做作业,然后再考。
3.输入你想在这个星球上待多少年,然后模拟时光飞快的过了每一年。

 package com;

import java.util.Scanner;

public class xunhuan {
    public static void main(String[] args) {
        three();
    }

    private static void three() {
        Scanner sc3=new Scanner(System.in);
        System.out.print("请输入你想在这个星球上待多少年:");
        int a1=sc3.nextInt(),b=1;
        while (b<=a1){
            System.out.println("你已经呆了"+b+"年");
            b++;
        }
    }

    private static void two() {
        Scanner sc2=new Scanner(System.in);
        System.out.println("请输入小明的成绩");
        double a1=sc2.nextDouble();
        while(a1<60){
            System.out.println("继续学习");
            System.out.println("请再输入小明的成绩");
            a1=sc2.nextDouble();
        }
        System.out.println("奖励钢笔一支");
    }

    private static void one() {
        Scanner sc1=new Scanner(System.in);
        int i=0;
        while (i<10){
            System.out.println("好好学习,天天向上");
            i++;
        }


    }
}

总结:循环就像是一个人在河里顺水而下,突然遇到一个漩涡。

2.do-while

一.格式:
二.案例:
1.U1学完了,同学们很开心,接下来就要面临考试了,考试及格的学员,顺利升级U2课程学习,不及格的呢,则要准备重考!
2.火车中途安检,查看身上是否有违禁物品,如果没有,可以继续乘坐,否则,赶下车去!
3.飞机中途安检,查看身上是否有违禁物品,如果没有,可以继续乘坐,否则自己跳下去!

3.While 和 do -while 的区别

1.while 和do-while格式写三遍体会写法的区别和注意分号。
2.While先条件判断,再执行循环体,do-while 先执行循环体,再条件判断。
3.区分理解:先安检,在上车;先坐车,出站安检。
先看口袋钱够不够,再决定是否进店消费;
先进去点餐吃饭,结账买单时再看钱够不够

4For循环:

一.语法和执行顺序:
二.使用场景:循环次数固定:更加突出具体了开始节点和结束节点
三.案例:
1.打印边长为5矩形
2.打印平行四边形
3.打印三角形
4.打印菱形
5.打印空心菱形
6.升级上面的案例,边长由用户输入
Java学习day03-选择结构与循环结构_第20张图片

package four;

import java.util.Scanner;

public class XunHuan {
    public static void main(String[] args) {
        five1();
    }
//任意长度的空心菱形
    private static void five1() {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入空心菱形的边长:");
        int a=sc.nextInt();
        for (int i = 1; i <=a; i++) {
            for (int k=a;k>=i;k--){
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                if (j==1||j==i){
                    System.out.print("* ");
                }else {
                    System.out.print("  ");
                }

            }
            System.out.println();//换行
        }
        for (int i = (a-1); i>=1; i--) {
            System.out.print(" ");
            for (int k=(a-1);k>=i;k--){
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                if (j==1||j==i){
                    System.out.print("* ");
                }else {
                    System.out.print("  ");
                }
            }
            System.out.println();//换行
        }
    }

    //边长任意的菱形
    private static void four1() {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入菱形的边长:");
        int a=sc.nextInt();
        for (int i = 1; i <=a; i++) {
            for (int k=a;k>=i;k--){
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print("* ");
            }
            System.out.println();//换行
        }
        for (int i = (a-1); i>=1; i--) {
            System.out.print(" ");
            for (int k=(a-1);k>=i;k--){
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print("* ");
            }
            System.out.println();//换行
        }
    }

    //边长任意的正三角形
    private static void three1() {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入三角形的边长:");
        int a=sc.nextInt();
        for (int i = 1; i <= a; i++) {
            for (int k=a;k>=i;k--){
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print("* ");
            }
            System.out.println();//换行
        }
    }

    //任意长度的平行四边形
    private static void two1() {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入平行四边形的长:");
        int b=sc.nextInt();
        System.out.println("请输入平行四边形的宽:");
        int a=sc.nextInt();
        for (int i = 1; i <= a; i++) {//每行
            for (int k = 1; k < i; k++) {//空格
                System.out.print(" ");
            }
            for (int j = 1; j <= b; j++) {
                System.out.print("* ");
            }
            System.out.println();//换行
        }
    }
//输入任意长度的矩形
    private static void one1() {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入矩形的宽:");
        int a=sc.nextInt();
        System.out.println("请输入矩形的长:");
        int b=sc.nextInt();
        for (int i = 1; i <= a; i++) {
            for (int j = 1; j <= b; j++) {
                System.out.print("* ");
            }
            System.out.println();//换行
        }

    }

    //空心菱形
    private static void five() {
        for (int i = 1; i <=5; i++) {
            for (int k=5;k>=i;k--){
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                if (j==1||j==i){
                    System.out.print("* ");
                }else {
                    System.out.print("  ");
                }

            }
            System.out.println();//换行
        }
        for (int i = 4; i>=1; i--) {
            System.out.print(" ");
            for (int k=4;k>=i;k--){
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                if (j==1||j==i){
                    System.out.print("* ");
                }else {
                    System.out.print("  ");
                }
            }
            System.out.println();//换行
        }
    }

    //菱形
    private static void four() {
        for (int i = 1; i <=5; i++) {
            for (int k=5;k>=i;k--){
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print("* ");
            }
            System.out.println();//换行
        }
        for (int i = 4; i>=1; i--) {
            System.out.print(" ");
            for (int k=4;k>=i;k--){
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print("* ");
            }
            System.out.println();//换行
        }

    }

    //正三角形
    private static void three() {
        for (int i = 1; i <= 10; i++) {
            for (int k=10;k>=i;k--){
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print("* ");
            }
            System.out.println();//换行
        }
    }
//平行四边形
    private static void two() {
        for (int i = 1; i <= 10; i++) {//每行
            for (int k = 1; k < i; k++) {//空格
                System.out.print(" ");
            }
            for (int j = 1; j <= 10; j++) {
                System.out.print("* ");
            }
            System.out.println();//换行
        }
    }
//正方形
        private static void one () {
            for (int i = 1; i <= 10; i++) {
                for (int j = 1; j <=10; j++) {
                    System.out.print("* ");
                }
                System.out.println();//换行
            }
        }

    }


Java学习day03-选择结构与循环结构_第21张图片

5跳转语句break和continue

一.请同学们自行脑补以下情景:
1.当你在河里玩漂流的时候,突然遇到一个漩涡,转了几圈后,你瞬间像开挂了一样,一跃而起,带着你的橡皮艇从漩涡里面跳了出来。break
你后面的小伙伴不小心也进入了漩涡,他想模仿你一样跳出来,可是法力不够,在空中停留了一秒,还是再次掉进漩涡中。continue
break是跳出整个循环语句,结束整个循环过程(当前所在层)
continue是跳出本次循环,而不是终止循环(当前所在层)

二.案例:
1.张三在一次参加学校的10000米赛跑时,跑了8圈之后突然感到心脏不适, 不得己中途退赛。
2.李四在10000米赛跑中,乘着别人不注意,从操场中间径直穿插过去,此行为属于作弊行为。
3.录入5门课成绩,输出平均成绩。如果录入的是负数,中止录入,并提示 录入错误

6.作业:

1.使用while、do-while以及for循环三种编程方式实现:计算100以内(包括 100)的偶数之和

 private static void one() {
        int a=0,b=0;
        while (a<100){
            a+=2;
            b+=a;
        }
        System.out.println("100以内的偶数之和为:"+b);

        int a1=0,b1=0;
        do {
            a1=a1+2;
            b1=b1+a1;
        }while (a1<100);
        System.out.println("100以内的偶数之和为:"+b1);

        int c=0;
        for (int i=0;i<=100;i+=2){
            c=c+i;
        }
        System.out.println("100以内的偶数之和为:"+c);
    }
}

Java学习day03-选择结构与循环结构_第22张图片

2.输入一个整数n,实现n的阶乘。n*(n-1)*…*1

 private static void two() {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入一个整数:");
        int n = sc.nextInt();
        int i=1,j=1;
        while(i<=n){
            j*=i;
            i++;
        }
        System.out.println(n+"的阶乘为:"+j);

    }

Java学习day03-选择结构与循环结构_第23张图片

Java学习day03-选择结构与循环结构_第24张图片

3.实现99乘法表的打印和输出。

  private static void three() {
        for (int i=1;i<=9;i++){
            for (int j=1;j<=i;j++){
                System.out.print(j+"*"+i+"="+(j*i)+"   ");
            }
            System.out.println();
        }
    }

Java学习day03-选择结构与循环结构_第25张图片

4.1~10之间的整数相加,得到累加值大于20的当前数

private static void four() {
        Scanner sc=new Scanner(System.in);
        int a;
        int b=0;
        for (;b<20;b+=a){
            System.out.println("请输入1-10之间的整数:");
            a=sc.nextInt();
        }
        System.out.println("累加值大于20的当前数为:"+b);
    }

Java学习day03-选择结构与循环结构_第26张图片

5.循环录入Java课的学生成绩,共5人,统计分数大于等于80分的学生比例

private static void five() {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入五个学生的成绩:");
        double a;
        double b=0;
        for (int i=1;i<=5;i++){
            System.out.println("请输入第"+i+"个学生的成绩:");
            a=sc.nextDouble();
            if (a>=80){
                b++;
            }
        }
        System.out.println("分数大于等于80分的学生比例为:"+(b/5));
    }

Java学习day03-选择结构与循环结构_第27张图片


1.输出1-10与5相乘的结果

private static void text01() {
        for (int i=1;i<=10;i++){
            System.out.println(i+"与5相乘的结果为:"+(i*5));
        }
    }

Java学习day03-选择结构与循环结构_第28张图片

2.用程序计算1-100的和,并输出

private static void text02() {
        int sum=0;
        for (int i = 1; i <=100 ; i++) {
            sum+=i;
        }
        System.out.println("1-100的和为:"+sum);
    }

在这里插入图片描述

3.求出所有的水仙花数,水仙化数为3位数,并且每位上的数字的立方和等于该数本身

 private static void text03() {
        for (int i=100;i<999;i++){
            if (i==(Math.pow(i%10,3)+Math.pow(i/100,3)+Math.pow((i/10)%10,3))){
                System.out.println("这个数是水仙花数:"+i);
            }
        }
    }

Java学习day03-选择结构与循环结构_第29张图片
Java学习day03-选择结构与循环结构_第30张图片

4.把100-200之间不能被3整除的数输出

 private static void text04() {
        System.out.println("100-200之间不能被3整除的数为:");
        int a=1;
            for (int i=100;i<=200;i++){
                if (i%3!=0){
                    System.out.print(i+"  ");
                }
                if (a%10==0){
                    System.out.println();//换行
                }
                a++;
            }
    }

Java学习day03-选择结构与循环结构_第31张图片

5.将1998-2008年之间的闰年年份输出

private static void text05() {
        System.out.println("1998-2008年之间的闰年年份为:");
        for (int i=1998;i<=2008;i++){
            if (i%4==0&&i%100!=0||i%400==0){
                System.out.println(i);
            }
        }
    }

Java学习day03-选择结构与循环结构_第32张图片

6.循环接受本班学生的考试成绩,每次接受完一个学生的分数,询问用户是否要继续,答案是‘1’时继续接受,否则,停止接受,最后输出所有学生的总分和平均分

 private static void six() {
        Scanner sc=new Scanner(System.in);
        int i;//成绩
        int sum=0;//记录总分
        double count=0;//记录学生个数
        int sex=1;
        do {
            System.out.print("请输入学生的成绩:");
            i=sc.nextInt();
            sum+=i;
            System.out.println("继续请按1");
            sex=sc.nextInt();
            count++;
        }while (sex==1);
        System.out.println("学生的总分为:"+sum+"  平均分:"+sum/count);
    }

Java学习day03-选择结构与循环结构_第33张图片

Java学习day03-选择结构与循环结构_第34张图片

7.计算用户输入的数字的阶乘,例如用户输入的是5,则计算5的阶乘,5的阶乘为 54321

  private static void text07() {
        System.out.println("请输入一个正整数:");
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        int b=1;
        for (int i=1;i<=a;i++){
            b*=i;
        }
        System.out.println(a+"的阶乘为:"+b);
    }

Java学习day03-选择结构与循环结构_第35张图片

8.用代码实现一个猜数字的小游戏,假设要猜的目标数字是8,先可以提示用户猜的数在0-10之间,然后循环接受用户输入的数字,如果用户输入的数字比目标数字小,就提示”小了,继续猜”,继续接受用户输入的数字,继续比较,如果大了,就”大了,继续猜”,如果用户在5次以内猜对了,就提示”你真聪明,猜对了!”并结束循环,如果猜了5次还没有猜对,就提示”真笨,不跟你玩了”,并结束循环

private static void text08() {
        int a=16;
        System.out.println("要猜的整数在0-50之间");
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你要猜的数:");
        boolean c=true;
        for (int i=1;i<=5;i++){
            int b=sc.nextInt();//猜的数
            if (b==a){
                System.out.println("你真聪明,猜对了!");
                c=false;
                break;
            }
            if (b>a){
                System.out.println("大了,继续猜");
            }
            if (b

Java学习day03-选择结构与循环结构_第36张图片
Java学习day03-选择结构与循环结构_第37张图片

9.求1-100之间所有3的倍数的和(用关键字continue和不用continue两种方法做)
Java学习day03-选择结构与循环结构_第38张图片

private static void one() {
        int sum=0;
        for (int i=1;i<=100;i++){
            if (i%3==0){
                sum=sum+i;
                //System.out.print(i+" ");
            }
        }
        System.out.println("1-100之间所有3的倍数的和为:"+sum);
        int sum1=0;
        for (int i=0;i<100;i++){
            if (i%3!=0){
                continue;
            }
            sum1+=i;
        }
        System.out.println("1-100之间所有3的倍数的和为:"+sum1);
    }

Java学习day03-选择结构与循环结构_第39张图片

10.上面题6改为,本班一共30个学生,循环接收学生的开始成绩,如果用户输入答案非’1’,则停止接受,如果输入的一直是’1’,但学生人数达到30也停止接收

 private static void text10() {
        System.out.println("请输入学生的成绩:");
        Scanner sc=new Scanner(System.in);
        double a;
        int b;
        double c=0;//总分
        int d=0;//记循环
        for (int i=1;i<=30;i++){
            a=sc.nextDouble();
            System.out.println("是否要继续,答案是‘1’时继续接受,否则,停止接受");
            c=c+a;
            d++;
            b=sc.nextInt();
            if (b!=1){
                break;
            }
            System.out.println("请继续输入学生的成绩:");
        }
        System.out.println("总分为:"+c);
        System.out.println("平均分为:"+c/d);
    }

Java学习day03-选择结构与循环结构_第40张图片

Java学习顺序

你可能感兴趣的:(Java,java,编程语言)