JAVA_Basis -- 3. 方法+流程控制+循环

1 方法

Java语言中方法指的是封装了一段特定逻辑功能的,使得程序结构清晰,便于代码复用的代码块。

1.1 语法:

修饰词 返回返回值 方法名(参数列表){
方法体
}
1. 返回值类型需要返回结果时使用,无返回结果时使用void
2.参数使用方法处理时灵活 可有可无
3.有返回值必须写return语句
4.return语句作用:返回结果并结束当前方法

1.2 无返回值方法

方法名();
方法名(参数值);

public void say(){
  System.out.println("Hello");
}
say();//调用
public void say(String str){
  System.out.println(str);
}
say("Hello");//调用
1.3 有返回值方法

数据类型 变量=方法名();
数据类型 变量=方法名(参数值);

public int add(){
     int c=3+2;
     return c;
}
int d=add();//调用
public int add(int a,int b){
     int c=a+b;
     return c;
}
int d=add(5,4);//调用

注意事项:有返回值必须加return 而且return语句返回的值类型必须与返回值类型匹配。

2 流程控制

![Java语言流程控制包含了分支结果的控制和循环结构的控制。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JXxF0CXS-1599406276332)(/img/bVbMgJd)]](https://img-blog.csdnimg.cn/20200906233156970.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzM4ODk1Ng==,size_16,color_FFFFFF,t_70#pic_center)

2.1 分支结构

可以把分支结构看成是自来水入户:一个条总线(Main) + 一条/N条分线(If/IF…ELSE/SWITCH…CASE),总线中的水流会按照顺序执行,到达分支(IF…语句)判断是否需要分支(TRUE/FALSE),如果需要水(TRUE)就供水(进入循环),不需要水(FALSE)继续执行代码直至结束。要先做判断再选择的问题就要使用分支结构。

2.1.1 IF 单分支

结构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UJkWqcq5-1599406276336)(/img/bVbMuss)]

案例
int num=5;
  if(num%2==0){
     System.out.println(num+"是偶数");
} 

2.1.2 IF…ELSE 多分支

IF…ELSE 语句和IF语句差不多,都是走两条路线,它们的区别在于IF…ELSE语句中对另外一种语句也进行处理。

结构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ipuQPlEc-1599406276339)(/img/bVbMusC)]

形式
if( 条件表达式 ){
    ...
}else{
    ...
}
案例

平年闰年

package com.mtingcat.javabasis.branchstructure03;

import java.util.Scanner;

/**
 *分支结构金典案例:平年闰年
 *	分支条件:
 *		1.能被4整除,并且不能被100整除
 *		2.能被400整除
 * @author MTing
 *
 */
public class branchStructureIf {
	public static void main(String[] args) {
		System.out.println("年号:");
		@SuppressWarnings("resource")
		Scanner scanner = new Scanner(System.in);
		int Y = scanner.nextInt();
		if(Y%4==0&&Y%100!=0||Y%400==0){
			System.out.println(Y + "年是闰年");
		}
		else{
			System.out.println(Y + "年是平年");
		}
	}
	

}

2.1.3 IF…ELSE IF 嵌套分支

结构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yO7eoDRQ-1599406276343)(/img/bVbMuv1)]

形式
if( 条件表达式 ){
    ...
}else if( 条件表达式 ){
    ...
}else{
    ...
}
案例
package com.mtingcat.javabasis.branchstructure03;

import java.util.Scanner;

/**
 * 商品打折
 * 	规则:满10000打7折,满20000打6折,满30000打5折
 * @author MTing
 *
 */
public class branchStructureIf02_discount {
	
	public static void main(String[] args) {
		System.out.println("消费总额:");
		@SuppressWarnings("resource")
		double price = new Scanner(System.in).nextDouble();
		double now = Discount(price);
		System.out.println(now);
	}
	
	public static double Discount(double price){
		if ( price >= 10000 ){
			price = price * 0.7;
		}else if ( price >=20000 ){
			price = price * 0.6;
		}else if ( price > 30000){
			price = price * 0.5;
		}
		return price;
	}
}


package com.mtingcat.javabasis.branchstructure03;

import java.util.Scanner;

/**
 * 按照学生的成绩给学生分等级
 * 	规则:100<= score >=90 优秀
 * 		80<= score < 90 良好
 * 		60<= score < 80 一般
 * 		0<= score <60 不及格
 * @author MTing
 *
 */
public class branchStructureIf03_studentScore {
	
	public static void main(String[] args) {
		System.out.println("请输入您的成绩");
		@SuppressWarnings("resource")
		double score = new Scanner(System.in).nextDouble();
		if( score <= 100 && score >= 90 ){
			System.out.println("您的成绩属于优秀");
		}else if( score >= 80 && score < 90 ){
			System.out.println("您的成绩属于良好");
		}else if( score >= 60 && score < 80 ){
			System.out.println("您的成绩属于一般");
		}else if( score >= 0 && score < 60 ){
			System.out.println("您的成绩属于不及格");
		}else{
			System.out.println("成绩无效,请重新输入");
		}
	}

}

2.1.4 SWITCh CASE 语句

当一个case成立,从这个case向后穿透所有case,包括default,直到程序结束或者遇到break程序才结束。

结构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qSswNkHk-1599406276345)(/img/bVbMuAP)]

形式
switch (key) {
		case value:
			break;
		default:
			break;
		}
案例
package com.mtingcat.javabasis.branchstructure03;

import java.util.Scanner;

/**
 * 数字匹配
 * @author MTing
 *
 */
public class branchStructureSwitch_dataMarry {
	public static void main(String[] args) {
		System.out.println("请输入您的数字");
		@SuppressWarnings("resource")
		int data = new Scanner(System.in).nextInt();
		switch (data) {
		case 1:
			System.out.println("匹配1");
			break;
		case 2:
			System.out.println("匹配2");
			break;
		case 3:
			System.out.println("匹配3");
			break;

		default:
			System.out.println("匹配错误");
			break;
		}
	}

}

2.2 循环结构

循环指的是在程序中需要反复执行的某个功能的程序代码,由条件判断是否退出循环,根据条件还可以分成先判断后循环,先循环后判断的结构

2.2.1 FOR 单循环

结构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YAqmSx0o-1599406276350)(/img/bVbMuEk)]

形式
for (int i = 0; i < args.length; i++) {
	...		
}
案例
package com.mtingcat.javabasis.branchstructure03;
/**
 * 输出在1-1000中5的倍数
 * @author MTing
 *
 */
public class branchStructureFor01_outPutData {
	public static void main(String[] args) {
		for (int i = 0; i < 1000; i++) {
			if(i % 5 == 0){
				System.out.println(i);
			}	
		}
	}

}

2.2.2 FOR 嵌套循环

结构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xdhxvR8g-1599406276353)(/img/bVbMuHW)]

形式
for (int i = 0; i < args.length; i++) {
			for (int j = 0; j < args.length; j++) {
			    ...	
			}
		}	
案例
package com.mtingcat.javabasis.branchstructure03;
/**
 * 九九乘法表
 * @author MTing
 *
 */
public class branchStructureFor02_multiplicationTable {
	public static void main(String[] args) {
		System.out.println("九九乘法表啊");
		for (int i = 1; i < 10; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print(i +"*"+ j +"="+ i*j+"\t");
				
			}
			System.out.println("\n");
		}	
		
	}

}

2.2.3 CONTINUE 和 BREAK

形式
for (int i = 0; i < args.length; i++) {
	if(判断条件){
        ...
        break;//如果成立,直接跳出这个for循环
    }	
    if(判断条件){
        ...
        continue;//如果成立,跳出本次for循环,进入下一轮
    }	
}
案例
package com.mtingcat.javabasis.branchstructure03;

import java.util.Scanner;

public class branchStructureFor03_continueBreak {
	public static void main(String[] args) {
		System.out.println("Your number:");
		@SuppressWarnings("resource")
		int j = new Scanner(System.in).nextInt();
		for (int i = 10; i > 0; i--) {
			if (j > i) {
				System.out.println("break");
				break;
			}
			if (j < i) {
				System.out.println("continue");
				continue;
			}
		}

	}

}

2.2.4 WHILE 循环

先判断后循环

结构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BTVmc82T-1599406276356)(/img/bVbMuMR)]

形式
while (en.hasMoreElements()) {
			type type = (type) en.nextElement();
		}
案例
package com.mtingcat.javabasis.branchstructure03;

import java.util.Random;
import java.util.Scanner;

/**
 * 猜数字
 * @author MTing
 *
 */

public class branchStructureFor03_guessData {
	public static void main(String[] args) {
		System.out.println("猜1-6的随机数字");
		int Data = new Random().nextInt(10)+1;
		while (true) {
			@SuppressWarnings("resource")
			int Input = new Scanner(System.in).nextInt();
			if(Input > Data){
				System.out.println("大了呦");
			}else if(Input == Data){
				System.out.println("正确");
			}else{
				System.out.println("小了小了");
			}
			System.out.println("正确答案:" +Data);
		}
	
	}

}

2.2.3 DO…WHILE 循环

先循环后判断

形式
 do {
			
		} while (condition);
案例
package com.mtingcat.javabasis.branchstructure03;

import java.util.Random;
import java.util.Scanner;

/**
 * 猜数字
 * @author MTing
 *
 */

public class branchStructureFor03_guessData {
	public static void main(String[] args) {
		System.out.println("猜1-6的随机数字");
		int Data = new Random().nextInt(10)+1;
		 do {
			 @SuppressWarnings("resource")
			int Input = new Scanner(System.in).nextInt();
				if(Input > Data){
					System.out.println("大了呦");
				}else if(Input == Data){
					System.out.println("正确");
				}else{
					System.out.println("小了小了");
				}
				System.out.println("正确答案:" +Data);
		} while (true);
	
	}

}

猜你喜欢

转载自blog.csdn.net/weixin_43388956/article/details/108438985