day03-java基础语法

学习目标

能够使用for循环完成一个范围的数据求和(用于已知循环次数)
	for(int i=0; i<次数; i++){}
	for(int i=1; i<=次数; i++){}
能够使用while循环完成珠穆朗玛峰案例(用于未知循环次数)
    while (zhi<=shanFeng){
        //4.在循环中,每循环一次   纸的厚度*2  统计变量++
        zhi*=2;
        count++;
    }
    while(true){} 死循环
能够知道三种循环的区别
	1.for循环和while循环: 先执行循环判断语句, 后执行循环体语句
    2.do...while循环:  先执行循环体语句, 后执行循环判断语句
    3.for循环: 初始化变量定义在循环内部, 循环结束后变量不能再使用
    4.while循环和 do..while循环:初始化变量定义在循环外部,循环结束变量还可以使用
能够知道循环嵌套的执行流程
	格式:
        for(int i=1; i<=10; i++){  //外层循环
            for(int j=1; j<=10; j++){}//内层循环
        }
    执行规则:
        外层循环执行一次,内层循环执行一圈
        总共的执行次数:外层循环次数*内层循环次数   10*10=100次
能够知道breakcontinue的作用
	break:结束(跳出)单层循环
	continue:结束(跳出)本次循环,继续下一次循环
能够完成猜数字小游戏程序
	1.使用Random获取一个1-100之间的随机数字
    2.使用Scanner获取用户猜的数字
    3.比较随机的数字和用户猜的数字
        用户猜的数字>随机的数字:提示"您猜大了,请往小了猜!"
        用户猜的数字<随机的数字:提示"您猜小了,请往大了猜!"
        用户猜的数字==随机的数字:提示"恭喜您,猜对了!"
        结束游戏
    4.使用死循环,重复执行2-3

第一章:循环语句结构

1.for循环

1.1 for循环基本使用

package com.itheima.demo05for;

/*
    循环作用:让某一段代码重复的执行
    for循环:用于已知循环次数
        次数:10 100  1000  10000
    需求: 输出10次相同的语句
 */
public class Demo01For {
    public static void main(String[] args) {
        //不使用for循环,输出10次相同的语句
        System.out.println("卡地亚黄金项链,你值得拥有");
        System.out.println("卡地亚黄金项链,你值得拥有");
        System.out.println("卡地亚黄金项链,你值得拥有");
        System.out.println("卡地亚黄金项链,你值得拥有");
        System.out.println("卡地亚黄金项链,你值得拥有");
        System.out.println("卡地亚黄金项链,你值得拥有");
        System.out.println("卡地亚黄金项链,你值得拥有");
        System.out.println("卡地亚黄金项链,你值得拥有");
        System.out.println("卡地亚黄金项链,你值得拥有");
        System.out.println("卡地亚黄金项链,你值得拥有");
        System.out.println("---------------------------------------------");
        //使用for循环,输出10次相同的语句
        for(int i=1; i<=10; i++){
            /*
                执行流程:
                    int i=1  1<=10 true 执行循环体:sout("卡地亚..."); i++=2
                    i=2      2<=10 true 执行循环体:sout("卡地亚..."); i++=3
                    i=3      3<=10 true 执行循环体:sout("卡地亚..."); i++=4
                    ...
                    i=10      10<=10 true 执行循环体:sout("卡地亚..."); i++=11
                    i=11      11<=10 false 结束for循环
             */
            System.out.println("卡地亚黄金项链,你值得拥有");
        }
    }
}

1.2 使用for循环打印输出1-5和5-1

package com.itheima.demo05for;

/*
    需求: 使用for循环输出1-5, 输出5-1
    思考:
        怎么获取1-5 或者5-1
    注意:
        变量的作用域,在变量所在的大括号{ }范围内有效
        出了变量的作用域,变量就消失了
 */
public class Demo02ForTest {
    public static void main(String[] args) {
        //使用for循环输出1-5
        for(int i=1; i<=5; i++){
            System.out.println(i);
        }
        System.out.println("---------------");
        //使用for循环输出5-1
        for(int a=5; a>=1; a--){
            System.out.println(a);
        }
    }
}

1.3 使用for循环求1-5之间的和

package com.itheima.demo05for;

/*
    需求: 求1-5之间的数据和,并把求和结果在控制台输出
    分析:
        获取1-5之间的数字,使用for循环 1,2,3,4,5
        定义一个变量 int sum = 0;
        累加求和: sum = sum+i;
 */
public class Demo03ForTest {
    public static void main(String[] args) {
        //定义一个初始化变量,值为0,记录累加求和
        int sum = 0;
        //获取1-5之间的数字,使用for循环
        for(int i=1; i<=5; i++){
            //累加求和
            //sum = sum +i;
            sum+=i;

            /*
                int i=1; 1<=5; true sum = 0 +1;=1  i++=2
                    i=2; 2<=5; true sum = 1 +2;=3  i++=3
                    i=3; 3<=5; true sum = 3 +3;=6  i++=4
                    i=4; 4<=5; true sum = 6 +4;=10  i++=5
                    i=5; 5<=5; true sum = 10 +5;=15  i++=6
                    i=6; 6<=5; false 直接for循环
             */
        }
        //打印结果
        System.out.println("1-5之间的数据和为:"+sum);
    }
}

1.4 判断奇偶数案例

需求:写一个程序判断并输出0~10之间的每个整数是奇数还是偶数

package com.itheima.demo05for;

/*
    需求:写一个程序判断并输出0~10之间的每个整数是奇数还是偶数
    ①  for循环从0开始,到10结束
        for(int i=0; i<=10; i++)
    ②  用数字对2取余,判断结果是0还是1
    ③  如果是1表示是奇数
        i % 2 == 1
    ④  如果是0表示是偶数
        i % 2 == 0
 */
public class Demo04ForTest {
    public static void main(String[] args) {
        //使用for循环获取0-10之间的数字
        for (int i=0; i<=10; i++){
            //判断i是奇数还是偶数
            if(i%2==0){
                //是偶数
                System.out.println(i+"是偶数!");
            }else{
                //是奇数
                System.out.println(i+"是奇数!");
            }
        }
    }
}

2.while循环

2.1 while循环基本使用

需求:使用while循环,打印10次HelloWorld

package com.itheima.demo06while;

/*
    while循环的作用:让代码重复的执行
    需求:使用while循环,打印10次HelloWorld
 */
public class Demo01While {
    public static void main(String[] args) {
        int i = 1;
        while (i<=10){
            System.out.println("HelloWorld"+i);
            i++;
        }
    }
}

2.2 while循环计算1-100之间的和

package com.itheima.demo06while;

/*
    需求:使用while循环求1-100之间的和,并输出结果
    分析:
        1.定义一个初始化变量,值为0,记录累加求和
        2.使用while循环获取1-100之间的数字
        3.累加求和
        4.输出结果
 */
public class Demo02While {
    public static void main(String[] args) {
        //1.定义一个初始化变量,值为0,记录累加求和
        int sum = 0;
        //2.使用while循环获取1-100之间的数字
        int i = 1;
        while (i<=100){
            //3.累加求和
            sum+=i;
            i++;
        }
        //4.输出结果
        System.out.println(sum);
    }
}

2.3 珠穆朗玛峰案例

需求:一张纸的厚度是0.0001米,珠穆朗玛峰的高度是8848米,在理论情况下,
一张纸折叠多少次能超过珠穆朗玛峰的高度?

package com.itheima.demo06while;

/*
    练习:珠穆朗玛峰案例
    需求:一张纸的厚度是0.0001米,珠穆朗玛峰的高度是8848米,在理论情况下,
      一张纸折叠多少次能超过珠穆朗玛峰的高度?
    分析:
         1.定义两个变量,一个记录纸的厚度,一个记录山峰的高度
         2.定义一个变量,初始值为0,记录折叠的次数
         3.使用while循环,进行重复的折叠动作, zhi<=shanFeng(循环)
         4.在循环中zhi的厚度*2,折叠次数++
         5.打印结果
    实际工作中: 
        for循环:用于已知循环次数   for(int i=1; i<=10; i++)
        while循环:用于未知循环次数   while (zhi<=shanFeng)   
 */
public class Demo03WhileTest {
    public static void main(String[] args) {
        //1.定义两个变量,一个记录纸的厚度,一个记录山峰的高度
        double zhi = 0.0001;
        int shanFeng = 8848;

        //2.定义一个变量,初始值为0,记录折叠的次数
        int count = 0;

        //3.使用while循环,进行重复的折叠动作, zhi<=shanFeng(循环)
        while (zhi<=shanFeng){
            //4.在循环中zhi的厚度*2,折叠次数++
            zhi *=2;//zhi=zhi*2;
            count++;
            System.out.println("第"+count+"次折叠完纸的厚度为:"+zhi);
        }
        //5.打印结果
        System.out.println("最终折叠的次数为:"+count);
    }
}

2.4 练习:使用while循环打印1-1000之间可以被3整除的数

package com.itheima.demo06while;

/*
    练习:使用while循环打印1-1000之间可以被3整除的数
        i%3==0  能被3整除
        i%4==0  能被4整除
        i%5==0  能被5整除
        ...
 */
public class Demo04WhileTest {
    public static void main(String[] args) {
        int i=1;
        while (i<=1000){
            //判断i能否被3整除
            if(i%3==0){
                System.out.println(i);
            }
            i++;
        }
    }
}

3.do while循环

3.1 do while循环基本使用

package com.itheima.demo07dowhile;

/*
    do..while循环作用:让代码可以重复执行
    特点:至少执行一次
        先执行一次循环体,在进行条件判断
 */
public class Demo01DoWhile {
    public static void main(String[] args) {
        //使用do...while循环打印10次HelloWorld
        int i = 1;
        do{
            System.out.println("HelloWorld"+i);
            i++;
        }while (i<=10);
    }
}

3.2 使用do while循环输出1-10的数字

package com.itheima.demo07dowhile;

/*
    需求:使用do..while循环输出1-10的数字
 */
public class Demo02DoWhileTest {
    public static void main(String[] args) {
        int i=1;
        do{
            System.out.println(i);
            i++;
        }while (i<=10);
        System.out.println("--------------------");
        //计算1-100之间的和
        int sum = 0;
        int a = 1;
        do {
            sum+=a;
            a++;
        }while (a<=100);
        System.out.println("sum:"+sum);
    }
}

4.三种循环的区别

package com.itheima.demo08loop;

/*
    三种循环的区别:
    1.for循环 while循环  和 do..while循环的区别
             for循环和while循环:  先执行循环判断语句, 后执行循环体语句
             do...while循环: 先执行循环体语句, 后执行循环判断语句
    for循环 和 while循环 和 do..while循环 的区别
            for循环:    初始化变量定义在循环内部, 循环结束后变量不能再使用
            while循环和 do..while循环:初始化变量定义在循环外部,循环结束变量还可以使用
    使用场合
            for循环:         适用于明确次数的场合
            while循环:       适用于不明确循环次数的场合
            do..while循环:   一般没有使用场合
 */
public class Demo01Loop {
    public static void main(String[] args) {
        //for循环和while循环:  先执行循环判断语句, 后执行循环体语句
        for(int i=0 ; i<0 ;i++){
            System.out.println(i);
        }
        /*
            int i=0;
            for(; i<0 ;){
                System.out.println(i);
                i++;
            }
         */
        System.out.println("---------------------------");
        int j=0;
        while (j<0){
            System.out.println(j);
            j++;
        }
        System.out.println("---------------------------");
        //do...while循环: 先执行循环体语句, 后执行循环判断语句
        int z=0;
        do{
            System.out.println(z);
            z++;
        }while (z<0);
        System.out.println("---------------------------");
        //for循环:    初始化变量定义在循环内部, 循环结束后变量不能再使用
        //System.out.println(i);//Cannot resolve symbol 'i'
        System.out.println(j);
        System.out.println(z);
    }
}

5.死循环

package com.itheima.demo08loop;

/*
    死循环:就是无限循环
 */
public class Demo02DieLoop {
    public static void main(String[] args) {
        //while循环的死循环(常用)
        /*while (true){
            System.out.println("键盘敲烂,月薪过万!");
        }*/

        //for循环的死循环:在工作中几乎不用,看java的底层源码,可以看到
        for(;;){
            System.out.println("我想有一个女朋友!");
        }
    }
}

第二章:跳转控制语句

1.break关键字

package com.itheima.demo09breakAndContinue;

/*
    break关键字的作用:
        1.结束switch语句
        2.跳出(结束)单层循环
    注意:
        break关键字必须写在switch语句或者循环中
 */
public class Demo01Break {
    public static void main(String[] args) {
        //break;//Break outside switch or loop
        //需求:打印10次我想有一个女同桌
        for (int i = 1; i <= 10; i++) {
            //需求:感觉重要的事情说3遍就够了,只打印三次
            System.out.println("我想有一个女同桌:"+i);
            if(i==3){
                break;//跳出循环
            }
        }
    }
}

2.continue关键字

package com.itheima.demo09breakAndContinue;

/*
    continue关键字:
        跳出本次循环,继续下一次循环
    注意:
        continue关键字只能使用在循环中
 */
public class Demo02Continue {
    public static void main(String[] args) {
        //continue;//Continue outside of loop
        //需求:打印10层楼房的层数
        for (int i = 1; i <= 10; i++) {
            //需求:感觉4数字不吉利,不打印4,跳过4层
            if(i==4){
                continue;//跳出本次循环,继续下一次循环
            }
            System.out.println("第"+i+"层");
        }
    }
}
package com.itheima.demo09breakAndContinue;

public class Demo03Countinue {
    public static void main(String[] args) {
        //需求:打印1-100之间的奇数
        for(int i=1; i<=100; i++){
            /*if(i%2==1){//i%2==1 奇数 i%2!=0
                System.out.println(i);
            }*/

            //判断i是偶数,跳出本次循环
            if(i%2==0){
                continue;
            }
            System.out.println(i);

        }
    }
}

第三章:循环嵌套

package com.itheima.demo10looploop;

/*
    循环嵌套
    在工作中:三种循环都可以相互嵌套使用
    使用最多的就是for循环嵌套for循环
    格式:
        for(int i=1; i<=10; i++){//外层循环
            for(int j=1; j<=10; j++){//内层循环
                ...
            }
        }
    执行次数: 外层循环次数*内层循环次数 10*10
        外层循环执行1次,内层循环执行一圈    i=1 j=1 j<=10
    需求:
        每天有24小时,每个小时有60分钟,打印从0时0分到23时59分
        0时0分
        0时1分
        0时2分
        0时3分
        0时4分
        0时5分
        ...
        23时59分
    分析:
       使用循环嵌套
       外层循环打印每天0-23小时
       内层循环打印每小时0-59分
 */
public class Demo01LoopLoop {
    public static void main(String[] args) {
        //使用循环嵌套
        for (int i = 0; i < 24; i++) {//外层循环打印每天0-23小时
            for (int j = 0; j <60 ; j++) {//内层循环打印每小时0-59分
                System.out.println(i+"时"+j+"分");
            }
        }
    }
}

第四章:Random随机数

1.基本使用

package com.itheima.demo11Random;

//1.导包:找到要使用Random类(java提供)
import java.util.Random;

/*
    Random随机数:是引用数据类型的一种,可以帮助我们获取随机数
    使用步骤:
        1.导包:找到要使用Random类(java提供)
            import java.uitl.Random;
        2.创建对象,为Random类型变量赋值
            数据类型 变量名 = 对象;==>定义变量
            Random r = new Random();
        3.通过变量名.方法名(),调用Random类中的方法
            int i = r.nextInt(int maxValue); 获取0到maxValue之间的一个随机数,包含0,不包含maxValue [0,maxValue)
            int i = r.nextInt(10); 获取0到10之间的一个随机数,包含0,不包含10 [0,10)
 */
public class Demo01Random {
    public static void main(String[] args) {
        //2.创建对象,为Random类型变量赋值
        Random r = new Random();

        //3.通过变量名.方法名(),调用Random类中的方法
        //产生10个随机数
        for (int i = 0; i < 10; i++) {
            int a = r.nextInt(10);//[0-9]
            System.out.println(a);
        }
    }
}

2.生成一个1-100之间的随机数

package com.itheima.demo11Random;

import java.util.Random;

/*
    需求:生成一个1-100之间的随机数
    int a = r.nextInt(100);//[0-99]
    int a = r.nextInt(101);//[0-100] 错误
    int a = r.nextInt(100)+1;//[0-99]+1==>[1-100]
 */
public class Demo02Random {
    public static void main(String[] args) {
        Random r = new Random();
        for (int i = 0; i < 10; i++) {
           int ran =  r.nextInt(100)+1;
            System.out.println(ran);
        }
    }
}

综合案例

1.统计一个月内考勤情况

公司每个月底都要对出勤情况进行统计,根据出勤情况发工资
具体的需求如下:
1.定义一个变量统计上班的次数
2.使用for循环1-30的数字
3.在for循环中使用Scanner获取1或者0
1表示有上班,0表示休假或旷工
4.使用if语句判断输入的是1还是0
5.如果输入的是1则把统计变量++
6.最终打印一个月出勤了几天
格式: 本月共出勤xx天!

package com.itheima.demo12Test;

import java.util.Scanner;

/*
    综合案例_统计一个月内考勤情况
    需求:公司每个月底都要对出勤情况进行统计,根据出勤情况发工资
    具体如下:
    1.定义一个变量统计上班的次数
    2.使用for循环1-30的数字
    3.在for循环中使用Scanner获取1或者0
       1表示有上班,0表示休假或旷工
    4.使用if语句判断输入的是1还是0
    5.如果输入的是1则把统计变量++
    6.最终打印一个月出勤了几天
      结果: 本月共出勤xx天!
 */
public class Demo01Test {
    public static void main(String[] args) {
        //1.定义一个变量统计上班的次数
        int count = 0;
        //2.使用for循环1-30的数字
        System.out.println("请输入1或者0:(1表示有上班,0表示休假或旷工)");
        for (int i = 1; i <=7 ; i++) {
            //3.在for循环中使用Scanner获取1或者0
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入第"+i+"天上班情况:");
            //1表示有上班,0表示休假或旷工
            int a = sc.nextInt();
            //对a进行判断,不是1也不是0,提示输入有误,再次重新输入
            if(a!=1&&a!=0){
                System.out.println("您输入的有误,请重新输入!");
                i--;//把本次输入错误的次数减去
                continue;//结束本次循环,继续下一次循环
            }

            //4.使用if语句判断输入的是1还是0
            if(a==1){
                //5.如果输入的是1则把统计变量++
                count++;
            }
        }
        //6.最终打印一个月出勤了几天
        //结果: 本月共出勤xx天!
        System.out.println("本月共出勤"+count+"天");
    }
}

2.猜数字小游戏

程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?
根据不同情况给出相应的提示
如果猜的数字比真实数字大,提示你猜的数据大了
如果猜的数字比真实数字小,提示你猜的数据小了
如果猜的数字与真实数字相等,提示恭喜你猜中了

package com.itheima.demo12Test;

import java.util.Random;
import java.util.Scanner;

/*
    综合案例_猜数字小游戏
    需求:
        程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?
         根据不同情况给出相应的提示
            如果猜的数字比真实数字大,提示你猜的数据大了
            如果猜的数字比真实数字小,提示你猜的数据小了
            如果猜的数字与真实数字相等,提示恭喜你猜中了
   分析:
    1.使用Random随机产生一个1-100之间的数字
    2.使用Scanenr获取用户输入的数字
    3.使用用户猜的数字和随机数比较
        猜的数字>随机数
            提示用户"您猜大了,请往小了猜!"
        猜的数字<随机数
            提示用户"您猜小了,请往大了猜!"
        猜的数字==随机数
            提示用户"恭喜您,猜对了!"
    4.定义一个死循环,循环2-3步
 */
public class Demo02Test {
    public static void main(String[] args) {
        //1.使用Random随机产生一个1-100之间的数字
        Random r = new Random();
        int randomNumber = r.nextInt(100)+1;
        System.out.println("1-100之间的随机数字已经产生,请开始猜数字小游戏!");
        //System.out.println("随机数:"+randomNumber);
        //4.定义一个死循环,循环2-3步
        while (true){
            //2.使用Scanenr获取用户输入的数字
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你要猜的数字:");
            int guessNumber = sc.nextInt();

            //3.使用用户猜的数字和随机数比较
            if(guessNumber>randomNumber){
                //猜的数字>随机数
                //提示用户"您猜大了,请往小了猜!"
                System.out.println("您猜大了,请往小了猜!");
            }else if(guessNumber<randomNumber){
                //猜的数字<随机数
                //提示用户"您猜小了,请往大了猜!"
                System.out.println("您猜小了,请往大了猜!");
            }else{
                //猜的数字==随机数
                //提示用户"恭喜您,猜对了!"
                System.out.println("恭喜您,猜对了!");
                //结束循环
                break;
            }
        }

    }
}

3.随机打印成语

需求:
随机产生1~7的一个数字,输出每个数字对应的成语.
如下:
1:一帆风顺
2:二话不说
3:三心二意
4:四面楚歌
5:五湖四海
6:六亲不认
7:七上八下

package com.itheima.demo12Test;

import java.util.Random;

/*
    综合案例_随机打印成语
    需求:
           随机产生1~7的一个数字,输出每个数字对应的成语.
           如下:
              1:一帆风顺
              2:二话不说
              3:三心二意
              4:四面楚歌
              5:五湖四海
              6:六亲不认
              7:七上八下
    提示:让用户只能产生5次数字
    分析:
        1.使用Random产生1-7之间的一个随机数字
        2.使用switch语句,根据产生的随机数字,输出对应的成语
        3.使用for循环,让程序执行5次
 */
public class Demo03Test {
    public static void main(String[] args) {
        //3.使用for循环,让程序执行5次
        for (int i = 1; i <= 5; i++) {
            //1.使用Random产生1-7之间的一个随机数字
            Random r = new Random();
            int a = r.nextInt(7)+1;
            System.out.println("随机数:"+a);
            //2.使用switch语句,根据产生的随机数字,输出对应的成语
            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("哈哈!");
            }
        }

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值