Java干货学习第三天-流程控制,循环,方法

Switch的语法结构:
java1.7之前只能操作整型,1.7开始还可以操作字符串,不能使用范围。

switch(整型/字符串){
	case '值':
		代码;
		break;
	case '值';
		代码;
		break;
	default:
		代码;
}
// case合并,相当于或
switch(整型/字符串){
	case '值':case '值':
		代码;
		break;
}

每个分支都需要以break结尾,用于结束循环(如果是嵌套循环,结束最近的),否则会出现case穿透的情况。
break应用场景,在一堆数据中找一个数据,找到之后,循环就可以停止了,不用再比较了。
可以通过给外层循环起名字,然后break外层循环。

outerFor: for(int i=0;i<5;i++){
	for(int j=0;j<5;j++){
		if(i==3){
			break outerFor;
		}
		System.out.print(j+"");
	}
	System.out.println();
}

continue是跳过当前次循环,继续下一次(碰到continue,直接执行表达式三)。

for(int i=0;i<5;i++){
	if(i==3){
		continue;
	}
	System.out.println(i);//输出是0124
}

在这里插入图片描述

/**
 * 
 */
package comSwitch;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Random;

/**
 * @author SkyMei
 *
 * @Date 2021年3月24日 上午9:44:13
 *
 */
public class SwitchTestOne {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 生成0.0-1.0的随机数
		Random random = new Random();
		double scoreOne = random.nextDouble();
		// 生成0.0-100.0的随机数
		double score = scoreOne*100;
		// 取两位小数
		BigDecimal bd = new BigDecimal(score);
		bd = bd.setScale(2,RoundingMode.HALF_UP);
		System.out.println(bd+"\n");
		switch((int)score/10){
			case 10:case 9:
				System.out.println("优秀");
				break;
			case 7:case 8: 
				System.out.println("良好");
				break;
			case 6:
				System.out.println("及格");
				break;
			default:
				System.out.println("不及格");
				break;
		}
	}

}

循环结构

循环分为for,do-while,while三种循环。
循环三要素:初始值,终止条件和步长。
for循环也叫计数循环,在某个次数循环中,重新做某件事。

// 语法结构 条件可以不写,分号必须有,这种情况进入无限循环的状态。
for(表达式1;表达式2;表达式3){
	重复代码;
}

先执行表达式一,并且只执行一次,执行表达式二,根据结果进行处理,如果是true就执行循环体,否则就终止,执行完循环体执行表达式三,然后执行表达式二…
嵌套循环,循环体中还有一个循环,双重嵌套可以模拟二维表格,可以把外层循环当作行,内存循环当作列。

/**
 * 
 */
package comFor;

/**
 * @author SkyMei
 * 九九乘法表
 * @Date 2021年3月24日 上午10:42:38
 *
 */
public class ForTestOne {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i =1;i<10;i++){
			for(int j =1;j<=i;j++){
				System.out.print(j+"*"+i+"="+(i*j)+" ");
			}
			System.out.println("");
		}
	}

}

while循环称为真假循环,某个条件为真的时候执行。

// while语法
while(boolean表达式){
	java代码;
}

do-while循环保证代码至少执行一次,先执行再判断是不是要执行。

// do-while语法
do{
	java代码;
}while(boolean表达式);

控制语句类型:选择结构语句(if,if else,else if,switch);循环结构语句(for,while,do while);改变语句执行序(break,continue)。

  • 用while和do while循环变量在循环体前初始化,而for是在第一句进行初始化。
  • while和for循环都是先判断表达式,然后执行循环体,do-while则是先执行循环体然后判断表达式。
  • 三种循环都可以用break语句跳出循环,用continue语句结束本次循环。
package comTask;

/**
 * 有,大马,中马,小马共100匹(每种马最少1匹),有100块砖头
 * 
 * 大马一次驮 3块砖头 , 中马一次驮2块砖头,三匹小马一次驮1块砖头
 * 
 * 刚好一次驮完, 问 大马,中马,小马 各多少匹
 * 
 * 
 * @author SkyMeis
 * @Date 2021年3月24日
 */
public class HorseQuestion {

	public static void main(String[] args) {
		int brick = 100;
		int num = 0;
		// int allHorse = 100;
		// int bigHorse,meHorse,smallHorse;
		// bigHorse+meHorse+smallHorse=allHorse;
		// bigHorse*3+meHorse*2+smallHorse/3=100;
		for(int bigHorse=0;bigHorse<99;bigHorse++){
			for(int meHorse=0;meHorse<99;meHorse++){
				for(int minHorse=0;minHorse<99;minHorse++){
					if(bigHorse!=0&&meHorse!=0&&minHorse!=0
							&&bigHorse+meHorse+minHorse==100
							&&minHorse%3==0&&bigHorse*3+meHorse*2+minHorse/3==brick){
								System.out.println("大马数量是"+bigHorse+"匹,中马数量是,"+meHorse+"匹,小马数量是"+minHorse+"匹");
								num++;			
					}
				}
			}
		}
		System.out.println("一共"+num+"种情况");
	}
}

方法(method)

方法就是一堆代码的集合,使程序简洁清晰,有利于维护,提高开发效率,提高代码重用性。
函数在类之外,和类平级,使用函数不需要二次引用,可以直接使用。
方法在类中,使用的时候需要加前缀才能找到它。
方法和函数是一个东西,只是因为位置不同,叫法不同,调用的方式也不同。
Java中只有方法。
方法的声明:
【修饰符列表】 返回值类型 方法名 (参数列表){方法体}
修饰符可有可无,可一可多:权限控制(public,private,protected,默认,四选一);其他(static,final,abstract,synchronized(final和abstract二选一))
返回值类型:完成功能后是否需要返回结果,如果不需要就写void,如果需要,就写返回数据对应的类型即可;十一种类型中任意一种或者void。
方法名符合命名规范。
方法名和变量名首字母建议小写,类名建议首字母大写。
参数列表:可有可无,没有只写();多个用逗号隔开,调用方法的时候,需要传递的数据。
形参:方法声明的时,规定应该传入的数据的类型。
实参:调用方法的时候实际传递的值。
方法体:Java编码,执行的功能。

public static int m1(int a,int b){
	return a+b;
}

方法分为静态方法,成员方法和构造方法。
使用static修饰的方法是静态方法,是类级别的;成员方法没有static修饰,构造方法用来创建对象。
静态方法调用的时候:类名.静态方法名(参数);类名.静态方法名();成员方法调用对象.成员方法名(参数);构造方法:new。
方法不调用不执行,调用才执行,并把结果返回到调用处,编写方法的时候不需要考虑先后,先调用先执行。
特殊方法main,入口程序,由JVM调用,不能改,参数列表中的args可以改。

public static vioid main(String[] args){}

Java程序可以理解为只会执行main方法,所有代码的开始和结束都依赖于main方法。

Return

  • 可以终止方法的运行
  • 返回数据

如果方法没有返回值,那么方法体中可以没有return,return不能写任何数据,return只有终止方法运行的作用;如果方法有返回值,那么必须有return,而且return后要写上返回值类型对应的数据;因为return有终止方法的作用,所以return后不能写代码。

package comTask;

/**
 * 作业 : 
 * 		1 计算1~100的累加加和
 * 		2 计算 1~100的偶数和
 * 		3 计算1~100的奇数和 
 * 
 * @author SkyMei
 * @Date 2021年3月24日
 */
public class For_04 {

	public static void main(String[] args) {
		/**
		 * 计算零到一百的和
		 */
		int i;
		int numAdd = 0;
		for(i=0;i<=100;i++){
			numAdd = numAdd+i;
		}
		System.out.println(numAdd);
		/**
		 * 计算零到一百的偶数和
		 */
		numAdd=0;
		for(i=0;i<=100;i+=2){
			numAdd = numAdd+i;
		}		
		System.out.println(numAdd);
		/**
		 * 计算零到一百的奇数和
		 */
		numAdd=0;
		for(i=1;i<=100;i+=2){
			numAdd = numAdd+i;
		}
		System.out.println(numAdd);
		/**
		 * 使用方法求两个整数之间数值的和
		 */
		numAdd = addNum(0,100);
		System.out.println(numAdd);
		/**
		 * 使用方法求两个整数之间偶数的和
		 */
		For_04.addEvenNum(3, 100);
		/**
		 * 使用方法求两个整数之间奇数的和
		 */
		numAdd = addOddNum(2,99);
		System.out.println(numAdd);
	}
	/**
	 * 计算任意两个整数之间数值和的方法
	 */
	public static int addNum(int a,int b){
		int c = a;
		for(;a<=b;a++){
			c+=a;
		}
		return c;
	}
	/**
	 * 计算两个整数之间偶数和的方法
	 */
	public static void addEvenNum(int a,int b){
		int c;
		if(a%2==0){
			c=a;
			for(;a<=b;a+=2){
				c+=a;
			}
			System.out.println(c);
		}else{
			c=0;
			a=a+1;
			for(;a<=b;a+=2){
				c+=a;
			}
			System.out.println(c);
		}
	}
	/**
	 * 计算两个整数之间奇数和的方法
	 */
	public static int addOddNum(int a,int b){
		int c;
		if(a%2==1){
			c=a;
			for(;a<=b;a++){
				c+=a;
			}
			return c;
		}else{
			c=0;
			a=a+1;
			for(;a<=b;a+=2){
				c+=a;
			}
			return c;
		}
	}
}

方法唯一性(通过唯一确定一个方法):方法名;参数列表(个数不同,类型不同)
方法重载:方法名相同,参数列表不同。(应用场景:功能类似)优点:美观,调用方便,记忆方便,不是为了减少代码复用。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卑微-程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值