零基础自学JAVASE Part5

今天下午打了场激烈的篮球赛,伸展了一下筋骨,舒服~

继续自学java之路。。

书接上集

 

2.3 do...whlie循环

格式:
  初始化语句;
  do {
    循环体语句;
    控制条件语句;
   } while(判断条件语句);
流程:
  先执行初始化语句
  在执行循环体语句
  在执行条件控制语句
  在做条件的判断,
  true, 继续执行循环体和条件控制
  false, 循环结束 

例子:

public class DoWhile {

    public static void main(String[] args) {
        int i = 0;
        do {
            System.out.println("默默成功"+ i);
            i++;
        }while(i<=10);
        
    }

}

 

2.4 循环综合使用

需求: 在键盘上输入一个数,如果是 1,代表蛇吃食物,得分加 10,并继续输入,如果输入的是一个非 1 的数字,停止程序,输出得分。
 
import java.util.Scanner;

public class Snake {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("游戏开始");
        int score = 0;
        System.out.print("请输入一个整数:");
        int oper = input.nextInt();
        while (oper == 1) {
            score += 10;
            System.out.println("当前得分为:"+ score);
            System.out.print("请再次输入一个整数:");
            oper = input.nextInt();
        }
        System.out.println("游戏结束,最总得分为:"+ score);
    }

}

 

需求: 1.控制台提示用户输入密码
    2.用户输入密码
    3.如果用户输入的密码不等于 1234,回到步骤 1
    4.如果用户输入的密码等于 1234,提示登录成功
import java.util.Scanner;

public class LoginPractice {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("欢迎Cason");
        System.out.print("请输入密码:");
        String password = input.nextLine();
        while (!("momo nuli".equals(password))) {
            System.out.println("密码错误");
            System.out.print("请重新输入密码:");
            password = input.nextLine();
        }
        System.out.print("密码正确,欢迎登陆");
    }

}

注:String不能使用“==”来比较另一个String,要用“已知”.equals ("未知输入")来比较

 

2.5 循环的嵌套

需求:打印99乘法口诀表

public class MultiTable {
    public static void main(String[] args) {
        for (int i = 1; i < 10; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j + "x" + i + "=" + (i * j)+ "\t");
            }
            System.out.println();
        }
    }
}

 

2.6 跳转控制语句

break: 结束单层循环,在循环语句和 switch 语句中使用
continue: 结束本次循环,在循环语句中使用
return: 结束整个方法,返回给生成调用者
 
注:switch语句中case和default不能用continue,这和python有所区别

 

3. 方法

3.1方法的定义

目的: 解决代码重复编写的问题:
格式:
  修饰符 返回值类型 方法名(参数类型 参数名 1,参数类型 参数名 2…) {
    函数体;
    return 返回值;
  }
方法格式的解释说明:
  修饰符 比较多,后面会详细介绍。目前 public static
  返回值类型 用于限定返回值的数据类型
  方法名 一个名称,为了方便我们调用方法
  参数类型 限定调用方法时传入参数的数据类型
  参数名是一个变量,接收调用方法时传入的参数
  方法体 完成功能的代码
  return 结束方法以及返回方法指定类型的值
  返回值 程序被 return 带回的结果,返回给调用者
 
import java.util.Scanner;

/**
 * 
 *    定义两个方法: 
 *        1. 打印两个double类型的值的差 
 *      2. 打印圆的面积和周长
 *    在main方法中调用:
 *        分别求 12.4 和 12.1 的差        
 *        求半径是4的周长和面积
 *
 */

public class CallMethod {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请问有什么需求?");
        System.out.println("1.计算两数之差;  2.计算圆的周长和面积");
        int num = input.nextInt();
        switch (num){
        case 1:
            System.out.print("请输入第一个数字:");
            double num_1 = input.nextDouble();
            System.out.print("请输入第二个数字:");
            double num_2 = input.nextDouble();
            printdiff(num_1, num_2);
            break;
        case 2:
            System.out.print("请输入圆的半径:");
            int num_3 = input.nextInt();
            circle(num_3);
            break;
        default:
            System.out.println("输入数字有误");
            break;
        }
    }

    public static void printdiff(double a, double b) {
        System.out.println(a - b);
    }

    public static void circle(int radius) {
        float PI = 3.14f;
        float a = 2 * radius * PI;
        float b = radius * radius * PI;
        System.out.println("圆的周长为:" + a);
        System.out.println("圆的面积为:" + b);
    }
}

 

方法的重载也是一种快捷的方法

  概念: 一个类中可以存在多个名字相同的方法,但是必须保证参数的个数或类型不同,与返回值无关

  传送门:https://www.bilibili.com/video/BV1Rx411876f?p=98

 
posted @ 2021-05-23 23:34  默默成功的Cason  阅读(78)  评论(0)    收藏  举报