大数据学习之路——Java基础(一)

分支

条件语句,分支主要作用是对编写的代码进行逻辑判断,以达到不同执行效果

Java程序的组成:顺序,分支,循环
在这里插入图片描述
if分支
if单分支

语法:
	if(表达式){
		执行代码;
	}

表达式:一般是关系运算符和逻辑运算符组成
if后面的()必须是一个boolean类型的表达式或具体的boolean值
执行过程:若表达式的值为真,则执行{}里的语句;若表达式的值为假,则不执行{}里的语句
if-else

if(表达式){
	执行语句;
}else{
	执行语句;
}

执行过程:若表达式的值为真,则执行{}里的语句,if-else语句结束;若表达式的值为假,则执行else{}中的语句。

三目运算符

判断条件?值1:值2

执行过程:先对判断条件进行判断,如条件为真,返回值1,;若条件为假,返回值2
使用三目运算符必须有返回值

a>b?System.out.print(a):System.out.print(b);//错误,必须有返回值

if-else if

if(表达式1){
	执行语句1;
}else if(表达式2){
	执行语句2;
}else if(表达式3){
	执行语句3;
}
·····		//中间可以有若干个else if 分支
else{	//可以不写,当所有条件都已经判断完了
	执行语句;
}

执行流程:先判断第一个if语句的表达式结果,为真则执行第一个if{}中的语句,结束整个分支语句;为假则继续判断下一个else if语句的表达式,只要执行了一个代码,则结束整个分支语句的执行。

扩展:两个数交换值
1、加入第三方变量

//最常用
int b = 1,c = 2;
int tmp = b;
b = c;
c = tmp;

2、相加

int b = 1,c = 2;
b = b + c;
c = b - c;
b = b - c;

3、异或

//速度最快,笔试做
int a = 1;
int b = 2;
a = a ^ b;
b = a ^ b;
a = a ^ b;

这里加一个小点

int num = (int)(Math.random()*100);
//Math.random()获取一个随机数,存在范围是一个左闭右开的区间[1,0)
//Math.random()*100即取0-99之间的一个数
///Math.random()*100+1取1~100之间的一个数

总结
if单分支用于一种情况。
当判断条件是一个双重条件(不是if后面的表达式,就是else后面的表达式(else后面省略表达式))
switch-case分支

语法

switch(常量)
{
	case 常量1:执行语句1;break;
	case 常量2:执行语句2;break;
	case 常量3:执行语句3;break;
	case 常量4:执行语句4;break;
	default:执行语句;break;
}
//常量:是指一个范值,整数(只支持int,不支持long),字符,枚举,表达式(算数表达式)得到具体的值
//不能放boolean类型的值或表达式;
//JDK1.7之后可以放字符串

执行过程:
当执行到switch时,计算常量,会和大括号中的case后的常量进行比较,若有常量匹配,就执行这个case语句后的执行语句,之后跳出switch语句;若所有case的常量都不能匹配,执行default后面的语句
PS
如果不使用break,就会出现贯穿-----只要在某一个范围内匹配成功,就会继续向下执行直到遇到break才会停止,并不会考虑后面case的条件

switch(month){
	case 2:
		System.out.println("28天");
		break;
	case 4:
	case 6:
	case 9:
	case 11:
		System.out.println("30天");
		break;
	defult:
		System.out.println("31天");
		break;
}

总结
switch和if分支
1.两者都是分支,if多用于判断boolean类型的条件
2.switch分支多用于判断表达式的值

循环

顺序结构是从代码开始到代码结束会逐条地执行.

分支结构是在代码中出现了一个逻辑判断,这个逻辑的判断会决定着某些代码不会执行

为什么要有循环?循环的要素?
如果在程序中我们要重复的执行某些指令,例如控制机器人踢足球,如果机器人持球而且没有进入射门范围,那么我们就要一直发出让机器人向球门奔跑的指令.当我们要在程序中要每个1秒在屏幕中打印一句"helloworld",并持续一个小时,这时肯定不能将System.out.println(“helloworld”);写3600遍,因此,我们需要循环-------循环结构可以让我们重复执行某个指令
要素:
1.明确重复的事情是什么?—>{重复的事情}
2.重复次数?----->循环变量(通过操作这个循环变量来达到对循环次数的控制)

在这里插入图片描述

while循环

循环变量赋初值;-->循环开始的位置

while(表达式)-->循环条件[一般由循环变量组成]
{
	重复操作的事情;--->执行语句
	循环变量自增/自减;---->控制循环次数[便于循环趋于结束]
}

表达式(循环条件):基本上是由关系运算符组成的表达式
常见的:>,>=,<,<= 偶尔出现== 和 !=
偶尔可见关系运算符合逻辑运算符共同组成的表达式(范围)&&(需求)

while后面的表达式是关系运算符组成,这个表达式是boolean表达式,那么意味着可以使用boolean类型的值

while(true) //无限循环

执行过程:先执行循环变量赋初值(1次),会执行到while判断小括号中的表达式(多次)真假,如果为真,就执行大括号中的语句

案例:打印一百以内的奇数,偶数,3的倍数

int i = 1;
while(i<=100){
		if(i%2==0)
		{
			System.out.println("偶数:"+i);
		}else{
			System.out.println("奇数:"+i);
		}
		if(i%3==0){
			System.out.println("3的倍数:"+i);
		}
		i++;
}

do-while循环

语法

do{
	执行语句;
	循环变量自增;
}while(表达式)

先执行循环语句,再判断循环条件

案例:计算1!+2!+3!的结果

int i=1;
int jc = 1;
int sum = 0;
do{
	jc*=i;
	sum += jc;
	i++;
}while(i<=3);

System.out.println("1!+2!+3!="+sum);

PS:while循环需要先判断循环条件,然后 才执行重复语句;但是do-while先执行重复语句,再去判断循环条件的真假;所以do-while语句至少要执行一次,而while语句可能一次都不会执行.

for循环

语法

for(循环变量赋初值;表达式(循环条件);循环变量自增或自减){
	重复操作的事情;[执行语句]
}

//赋初值的变量:局部变量,作用域仅限于在for循环体内

表达式(循环条件):基本上是由关系运算符组成的表达式
常见的:>,>=,<,<= 偶尔出现== 和 !=
偶尔可见关系运算符合逻辑运算符共同组成的表达式(范围)&&(需求)

执行过程:当程序执行到for时,先会执行循环变量赋初值(1次),然后根据循环变量判断循环条件,如循环条件为真,则执行大括号中的语句,然后循环变量自增或自减,继续判断循环条件,直到循环条件为假,循环结束

for循环的6种写法

//标准写法
for(int i = 0;i<10;i++){
	System.out.println(i);
}

//提升循环变量的作用域
int i =0;
for(;i<10;i++)
{
	System.out.println(i);
}
//另一种变形
int i ;
for(i=0;i<10;i++)
{
	System.out.println(i);
}
//死循环的第一种写法
for(int = 1;;i++){
	System.out.println(i);	//不写循环条件默认true
}
//将循环变量自增或自减写到循环体内部
for(int = 1;i<10;){
	System.out.println(i);	
	i++;
}
//相当于while循环
int i= 1;
for(;i<10;){
	System.out.println(i);	
	i++;
}
//什么都不写
for(;;){
	System.out.println("我是死循环");
}

循环嵌套
PS:
所有的循环都可以嵌套,for循环使用比较多,比较经典,以for循环为例

for(int i = 0;i<10;i++)
{
	for(int j = 0;j<10;j++)
	{
		System.out.println(j);
	}
}
//嵌套循环:在一个循环体内部再写循环

for (int i=1; i<=4; i++)
{
	for (int j=1; j<=5; j++)
	{
		System.out.print(i*j+"  ");
	}
		System.out.println();
}
/*
1	2	3	4	5
2	4	6	8	10
3	6	9	12	15
4	8	12	16	20

*/

break continue return关键字

break可以结束当前循环-----即当出现循环嵌套时,break出现在那层循环,就停止哪层循环

当书写循环时,不需要等到循环条件为false来停止循环时,可以用break

使用switch语句时,用break结束分支

continue:跳过本次循环,进行下一次循环

return:不是给循环使用,专门针对方法,可以结束一个方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值