java小白学编程之基础3

do-while 循环

do{
循环体
}while(判断条件)
do-while循环 不管判断条件是否成立 都会先执行循环体一次

//      String str = "";
//
//      do {
//          System.out.println("今天星期" + day);
//          
//          day++;
//          //思考在那里接收这个输入字符串
//          //多次接收用户的输入
//          str = scanner.nextLine();
//          
//      } while (str.equals("上班") && day  <=7);

        //break在while循环中的作用
        int number = 0;
        while(number < 10){
            if (number == 5) {
                //break可以结束当前的循环
                //注意:break后面不写代码
                break;
            }
            System.out.println(number);
            number++;
        }

        }

for循环

for(循环增量)
for(int i = 0; < 5; i++){
sout(“循环内”);
}
sout(“循环外”);

public static void main(String[] args) {
//打印十次你开心吗?
for (int i = 0; i < 10; i++) {
//注意:循环增量 只能跟for后面的大括号中使用
System.out.println("你开心吗?" + i);
}
//计算1到10的和(使用for)
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum = sum + i;
}
System.out.println(sum);


//  使用for循环 1-100中 
//  是7的倍数 的个数 打印个数
int number = 0; 
for (int i = 1; i <= 100; i++) {
if (i % 7 == 0) {
number++;
}
}
System.out.println(number);
}

嵌套for循环

for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 5; j++) {
            sout("内循环");
            }
            sout("内循环"); 
        }
public static void main(String[] args) {
        System.out.print("哈哈");
        /*
         * 利用for循环打印矩形
         * ***
         * ***
         * ***
         * ***
         * ***
         * 外循环控制 一共有几行
         * 内循环控制 每一行有一个
         */
        //外循环
        for (int i = 0; i < 5; i++) {
//          内循环
            for (int j = 0; j < 3; j++) {
                System.out.print("*");
            }
            //换行
            System.out.println();
        }
       /*
         * *****
         * ****
         * ***
         * **
         * *
         *尖向下的三角形修改
         *内循环的 循环增量初始值
         */

        for (int i = 0; i < 5; i++) {
            for (int j = i ; j < 5; j++) {
                System.out.print("*");  
            }
            System.out.println();
        }


        /*
         * 
         * *
         * **
         * ***
         * ****
         * *****
         * 尖向上的三角形修改
         * 内循环 判断条件的值
         */

        for (int i = 0; i < 5; i++) {
            //判断条件需要一个递增的量
            for (int j = 0; j <= i ; j++) {
                System.out.print("*");
            }
            System.out.println();
        }


        //打印99乘法表 /t(制表符)
//      1*1=1   
//      1*2=2   2*2=4   
//      1*3=3   2*3=6   3*3=9   
//      1*4=4   2*4=8   3*4=12  4*4=16  


        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i ; j++) {
                System.out.print(j + "*" + i + "=" + i * j + "\t");
            }
            System.out.println();
        }

        //      -----* 
        //      ----* * 
        //      ---* * * 
        //      --* * * * 
        //      -* * * * * 

        for (int i = 0; i < 5; i++) {
            for (int j = i; j < 5; j++) {
                System.out.print("-");
            }
            //拼接*号的三角形
            for (int k = 0; k <= i; k++) {
                System.out.print("* ");
            }
            System.out.println();
        }

for循环

  • break 结束当前循环
  • continue 结束本次循环 继续下次循环
public static void main(String[] args) {
//      for (int i = 0; i < 10; i++) {
//          if (i== 5) {
//              break;
//          }
//          System.out.println(i);
//      }
//              
        //打印[0, 100]中
        //是7的倍数中的值最大那个数(两种方法)
//      int max = 0;
//      for (int i = 0; i < 100; i++) {
//          
//          if (i % 7 ==0) {
//              max = i;
//          }
//          System.out.println(max);
//      }
//      //使用break
//      for (int i = 100; i >= 0; i--) {
//          if (i % 7 ==0 ) {
//              System.out.println(i);
//              break;
//          }
//      }


            //  班级13个人 跟每个人打招呼(打印几号你好) 
            //  讨厌的人不打招呼
            //  我分别讨厌 3号 5号 9号


//      for (int i = 1; i <=13; i++) {
//          //判断
//          if (i == 3 || i == 5 || i == 9) {
//              continue;
//          }
//          System.out.println(i + "号 你好");
//          
//          
//      }
        //双层循环中break 结束时本层循环
    //双层循环中continue 没有影响外层循环
        //结束本层的本次循环 继续下次循环
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                if (j == 5) {
                    break;
                }
                System.out.println(j);
            }
            System.out.println();
        }
        //补充:
        //做题时 如何选用使用哪个循环
        //如果有明确的循环停止条件 一般用while好写
        //数组一般使用for循环好写
        //一般使用死循环 都使用while
        //如果不知道要循环多少次 用死循环来写
        //然后用break来结束循环

        //for循环的死循环

        for(;;) {
            System.out.println("哈哈");   
        }
    }

随机数(系统提供的Math类)

伪随机
random()方法
取值范围[0,1) 0到1之间的小数(留头不留尾)

[0,10]整数随机

公式:
(最大值 - 最小值 + 1) + 最小值

public static void main(String[] args) {
/*
//double num = Math.random();
//System.out.println(num);
//打印[23,88]之间的随机数
int num =(int)(Math.random() * (88 - 23 + 1) + 23);
System.out.println(num);

}
*/
//  随机[15,200]的整数 10个 并找出最大值
/*
int max = 0;
for (int i = 0; i < 10; i++) {
int num = (int)(Math.random() * (200 - 15 + 1) + 15);
//判断最大值
if (max < num) {
max = num;
}
}
System.out.println("最大值" + max);
*/

//  猜数字
//  随机一个[0,100]的数
//  输入你猜的数 
//  如果你猜的数比随机出来的大 就打印猜大了
//  反之 猜小了  猜中 打印猜中了 结束程序 
System.out.println("请输入0-100中的数");
Scanner scanner = new Scanner(System.in);
int randomNum =(int)(Math.random()*101);
//循环判断是否猜中
while (true) {
//接收用户输入的数
String str = scanner.nextLine();
//转化成整数
int num = Integer.parseInt(str);
//判断大小 提示用户
if (randomNum > num) {
System.out.println("猜小了");
}else if (randomNum < num) {
System.out.println("猜大了");
}else{
System.out.println("猜中了");
//结束循环
break;
}
}


}

函数:封装了特定功能的代码块

  • 函数好处 : 增加代码的重复使用率 提高效率

    • 函数的写法:
  • 参数列表(可以是多个 也可以没有)
  • 关键字 返回值类型 函数名字(参数类型1 参数名1,参数类型2 参数名2,……..){
  • 函数体(执行代码)
  • return 返回值;(返回值和函数声明上返回值类型保持一致)
  • }
  • 函数可以没有返回值
  • 这时 函数声明上的返回值类型 使用void类型

    • 函数名使用 小驼峰写法
  • 关键字 照抄 public static

    • 书写位置:
  • 1.在类中写
  • 2.函数中 不能定义函数

    • 编写函数步骤
  • 1.明确函数的参数
  • 2.明确函数的返回值

    • 3.函数的重载:当函数的功能相同,但是代码实现不同
  • 可以使用相同的函数名 来声明
  • 注意:
  • 函数的重载 只跟 参数有关
  • (数量 类型 顺序有关) 跟参数名 返回值类型 无关
//打印3行8列的矩形函数
    //通过增加参数 来扩展该函数的功能
    //打印N行M列的矩形
    public static void printRect(int n,int m) {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
    //写计算两个整数的和的函数
    public static int sum(int a , int b) {
        return a + b;
    }
    //函数能不能定义同名函数?

    public static void main(String[] args) {
        //调用打印矩形函数
        //直接使用 函数名(传入的参数);调用
        //printRect();
        //printRect(10, 2);

        int num1 = sum(10, 15);
        System.out.println(num1);

        System.out.println("请输入0-100的之间的数");
        Scanner scanner = new Scanner(System.in);
        //  随机数
        int randomNum = (int)(Math.random() * (100 - 0 + 1) + 0);
        System.out.println(randomNum);
        //  循环判断是否猜中
        while (true) {
            //  接收用户输入的数
            String str = scanner.nextLine();
            //  转化成整数
            int num = Integer.parseInt(str);
            //  判断大小 提示用户
            if (randomNum > num) {
                System.out.println("猜小了");
            } else if (randomNum < num) {
                System.out.println("猜大了");
            } else {
                System.out.println("猜中了");
                //  结束循环
                break;
            }

        }

需求: 定义函数
========
  1.计算2个数的最大值
  2.计算3个数的最大值
  3.计算4个数的最大值

public static int max(int a, int b) {
return(a > b) ? a : b;
}
public static int max(int a,int b,int c) {
//直接调用2数的最大值方法
int num = max(a, b);
return (num > c) ? num : c;
}
public static int max(int a,int b,int c,int d) {
int num = max(a, b, c);
return(num > d) ? num : d;
}

递归函数:

  • 在本函数中调用一个 和自己函数名相同的函数
    //计算 4! 阶乘
public static int fun(int n) {
        //注意递归函数必须要提供函数的出口 否则会成为死循环
        if (n == 1) {
            //直接结束递归
            return 1;
        }
        return n * fun(n - 1);
    }
    public static void main(String[] args) {
        int num = fun(4);
        System.out.println(num);

        //获取字符串当中的字符
        String str = "wanglong";
        //根据角标获取字符(角标是从0开始)
        char c = str.charAt(1);
        System.out.println(c);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值