Java学习笔记03

复习

        

顺序

条件分支

if

if - else

if - else if - else

switch/case -> 判断变量是否相等

循环

for(初始值;循环条件;步长){循环体}

知道次数,有规律可循

while(循环条件){循环}

do - while(循环条件)

不知道次数,无规律可循

JVM内存空间:

方法区:类相关信息

栈:局部变量/临时变量

堆:引用类型的真正数据,对象

类加载:将字节码(class文件)中的类相关信息读取到JVM的方法区中

方法

各种语言都有方法的概念(有的语言称其为函数或过程);

方法用于封装一段特定的逻辑功能,如:执行计算或操作;

方法可以在程序中反复被调用;可以减少代码重复,便于程序的维护。

⽅法的定义和调⽤

public class Method_Demo1 {
 public static void main(String[] args) {
 print();
 }
 private static void print() {
 for (int i = 0; i < 5; i++) {
 for (int j = 0; j < 8; j++) {
 System.out.print("*");
 }
 System.out.println();
 }
 }
}

定义⽅法的格式

修饰符 返回值类型 ⽅法名(参数列表) {
 // 代码省略...
 return 结果;
}

修饰符 + 返回值类型 + 方法名 + 方法参数 + 方法体

  修饰符:public static

  返回值类型:

   void: 没有返回值

   基本数据类型: 8种

   引用数据类型: 数组 -> int[] char[]

方法名:随意

  方法参数:

   String[] args -> 类型 + 引用名

   int a -> 类型 + 变量

   方法参数可以有多个,使用 ',' 隔开

方法的返回值:

   有返回值类型的方法,必须添加return返回值,没有返回值类型的方法也可以使用return,return表示方法结束.

方法名的命名规则:

1.首字母小写,第二个单词首字母大写 -> 驼峰命名法

2.可读性要好

调⽤⽅法的流程图解

猜字母游戏

游戏需求:

      随机生成5个不同的大写字母    AFCHE

      用户猜字母             ABDCE

      提示: 3个字母正确,其中位置正确的有2个

    步骤:

        1.随机生成5个不同字符  -> 字符数组

        2.控制台输入 -> Stirng -> 拆解 -> 字符数组

        3.两个字符数组相对比

        4.如果不相等,重复2和3

import java.util.Scanner;
import java.util.Arrays;
public class d3 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		char[] letter=new char[5];
		System.arraycopy(spawn(),0,letter,0,5);
		System.out.println(Arrays.toString(letter));
		while(true) {
			String str = sc.nextLine();
			int[] result=compare(change(str),letter);
			System.out.println("字符相同:"+result[0]);
			System.out.println("位置相同:"+result[1]);	
			if(result[1]==5) {
				System.out.println("结束");
				break;
			}
		}		
		
	}
		
	public static char[] spawn() {
		char[] arr =new char[5];
		
		int[] arr1 = new int[5];
		
		for(int i=0;i<arr1.length;i++) {
			arr1[i] = (int)(Math.random()*26);
			for(int j=0;j<i;j++) {
				if(arr1[i]==arr1[j]) {
					i--;
					break;
				}
		}
}
		

		for(int i=0;i<arr.length;i++) {
			arr[i]=(char) ('A'+arr1[i]);
		}
		
		return arr;
	}

	public static char[] change(String str) {
		char[] arr=new char[5];
		for(int i=0;i<arr.length;i++) {
			arr[i] = str.charAt(i);
		}
		return arr;
	}

	public static int[] compare(char[] reply,char[] truth) {
		int n=0,m=0;
		for(int i=0;i<5;i++) {
			for(int j=0;j<5;j++) {
				if(reply[i]==truth[j]) {
					n++;
					if(i==j) {m++;}
					}
			}
		}
		int[] arr= {n,m};
		return arr;
	}
	
}

常用类:

1)Scanner

int nextInt():获取控制台内容,并且转换成int值返回

double nextDouble(): 获取控制台内容,并且转换成double返回

    String next(): 获取控制台字符串, 并返回(遇到回车或者空格读取结束)

    String nextLine(): 获取控制台一整行字符串,并返回(遇到回车结束)

2)System

print(内容) -> 打印,不换行

println(空/内容) -> 打印完,换行

3)Math

double random(): 返回一个[0,1)随机数

double pow(double d1,double d2): 返回 d1 的 d2 次幂

4)String

char charAt(int index): 返回index索引位置对应的字符

5)Arrays:

String toString(数组): 将数组变成字符串格式返回

6)常见转义字符

\n:回车  

\r:换行  

\t:制表符  

\\:\本身

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值