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语言流程控制包含了分支结果的控制和循环结构的控制。
JAVA_Basis -- 3. 方法+流程控制+循环_第1张图片

2.1 分支结构

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

2.1.1 IF 单分支

结构图

JAVA_Basis -- 3. 方法+流程控制+循环_第2张图片

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

2.1.2 IF...ELSE 多分支

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

结构图

JAVA_Basis -- 3. 方法+流程控制+循环_第3张图片

形式
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 嵌套分支

结构图

JAVA_Basis -- 3. 方法+流程控制+循环_第4张图片

形式
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程序才结束。

结构图

JAVA_Basis -- 3. 方法+流程控制+循环_第5张图片

形式
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 单循环

结构图

JAVA_Basis -- 3. 方法+流程控制+循环_第6张图片

形式
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 嵌套循环

结构图

JAVA_Basis -- 3. 方法+流程控制+循环_第7张图片

形式
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 循环

先判断后循环

结构图

JAVA_Basis -- 3. 方法+流程控制+循环_第8张图片

形式
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);
    
    }

}

你可能感兴趣的:(java)