Java学习日志 (Day2 程序结构+面向对象初步)

1、分支语句(if)
场景:对范围进行判断的时候
语法结构:
a、第一种形式

if(表达式){
		语句块;
	}
	b、第二种形式
	if(表达式){
		语句1;
	}else{
		语句2;
	}
	c、第三种形式
	if(表达式1){
		语句1;
	}else if(表达式2){
		语句2;
	}
	...
	else{
		语句n;
	}

2、分支语句(switch)
场景:等值判断
语法:

switch(变量|表达式){
		case 常量1:
			语句1;
			break;
		case 常量2:
			语句2;
			break;
		...
		default:
			语句n;
			break;
	}
注意:其中常量值可以是整数、字符、枚举,JDK1.7后支持String类型。
现象:case下滑(下坠)。

3、循环语句(while)
场景:不清楚到底循环多少次
语法结构:

while(表达式){
		循环体;
		迭代变量自增;
	}
	注意:一定要添加变量自增,否则进入死循环。
	死循环:
	while(true){
	}

4、循环语句(do…while)
语法结构:

do{
		循环体;
	}while(表达式);
注意:while后有';',do-while循环至少执行一次循环体。
举例:
	Scanner sc = new Scanner(System.in);
	String answer = "no";
	// 向女朋友求婚
	do {
		System.out.println("嫁给我吧!");
		answer = sc.nextLine();
	} while (!answer.equals("yes"));		
	//建议:String判断相等,使用equals方法,不建议用==
	//结果输出
	System.out.println("结婚!");
总结:while与do-while的区别。

5、循环语句(for)
场景:一般知道循环多少次
语法结构:

for(表达式1;表达式2;表达式3){
	循环体;
}
执行顺序:表达式1-->表达式2-->(满足)循环体-->表达式3-->表达式2-->(满足)循环体-->...
注意事项:for()中有且只有两个';'
死循环:
	for(;;){
	}
举例:
	

for(int i=100;i<999;i++){
			//拆分
			//整数相除为整数,浮点数运算为浮点数
			int bai = i/100;	//百位
			int shi = i%100/10;	//十位
			int ge = i%10;		//个位
			//判断是否满足水仙花特点
			if(i == (bai*bai*bai + shi*shi*shi + ge*ge*ge)){
				System.out.println(i);
			}
		}
嵌套循环:九九乘法表

6、控制语句
a、break
场景:用在switch、循环语句中,跳出循环,结束后面所有循环。
举例:

for(int i=0;i<10;i++){
				System.out.println(i + "跑一圈");
				if(i==6) break;
			}
b、continue
	场景:循环语句中,结束本次循环,进入下一次循环。
	举例:
		for(int i=0;i<10;i++){
			System.out.println(i + "下一题");
			if(i==6) continue;
			System.out.println("next");
		}
c、return
	场景:方法中,需要返回给调用者一定的结果。

7、数组
a、定义:存储一系列相同数据类型的数据的集合。
b、声明语法结构:
数据类型[] 数组名; -->推荐使用
数据类型 数组名[];
注意:单独声明数组时不能指定数组的长度(即元素的个数)。
c、数组的初始化:
注意:数组一旦初始化,长度不可变;数组未初始化,不能使用。
1)静态初始化
语法:
数据类型[] 数组名=new 数据类型[]{初始值列表}
数据类型[] 数组名={初始值列表}
例:
int[] scores=new int[]{90,85,81,91,70}; //java成绩
int[] scores2 = {70,80,90,100,88};
2)动态初始化
语法:
数据类型[] 数组名=new 数据类型[长度]
例:

int[] scores3 = new int[5];
			scores3[0] = 90;
			scores3[1] = 98;
			scores3[2] = 80;
			scores3[3] = 78;
			scores3[4] = 89;

定义:索引(下标),指的是数组中元素的编号,Java中下标从0开始。
注意:数组越界异常,空指针。
d、数组操作
1)遍历
例1:

		for(int i=0;i<5;i++){
			System.out.println(scores[i]);
		}
		注意:可以使用数据名.length来获得数组的长度。
	例2:		
			//增强for循环,foreach
			for(int score:scores){
				System.out.println(score);
			}
2)取最值
		例:
		int[] scores={90,89,81,78,22};
		int max = 0;	//最大值
		for(int i=0;i<scores.length;i++){
			if(max < scores[i]){
				max = scores[i];
			}
		}
		System.out.println("最高成绩为:"+max);

3)排序
例:
Arrays.sort(scores);
e、多维数组。
8、方法
a、定义:方法是把一些相关的语句组织在一起,用于解决某一特定问题的语句块。
b、语法:
[修饰符] 返回值类型 方法名(数据类型1 参数1,…,数据类型n 参数n){
方法体;
return 结果;
}
例:

public static int myAdd(int a, int b){
			int c = a + b;
			return c;
		}

注意:刚开始,建议每个方法前都添加public static修饰符。如果没有返回值,则返回值类型为void,此时可以不加return语句。
概念:形参,实参。
c、值传递
Java里方法的参数传递方式只有一种:值传递。
即将实际参数值的副本(复制品)传入方法内,而参数本身不受影响。
例:
//不发生变化,基本数据类型不发生变化
public static void myFunction(int a){
a = 10;
}
//发生变化的,引用数据类型传递的是内存地址
public static void myFunction2(int[] a){
a[0] = 8;
}
d、方法重载(overload)
定义:在同一个类中,出现了重名的方法,但是其参数列表不同(参数的个数、参数的类型)。
好处:可以方便程序员调用。

			public static int myAdd(int a, int b){
				return a + b;
			}
			public static int myAdd(int a, int b, int c){
				return a + b + c;
			}
			public static short myAdd(short a, short b){
				return (short)(a + b);
			}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值