Skip to content
本页目录

顺序结构

从上倒下依次执行代码

当前变量尚未声明,就使用会报错

分支语句

分支语句这里我就不多说了,因为我是学前端的,所以JS跟Java分支语句差不多,跟写js语法一样

  1. if...
  2. if...else if...else if...else
  3. if...else...
  4. if...else... 嵌套
java
class IfElse {
	public static void main(String[] args) {
		// java的流程控制语句跟JavaScript差不多
		
		/**
			案例1:成年人心率的正常范围是每分钟60~100次。体检时,
			如果心率不在范围内,则提示需要做进一步的检测。
		*/ 

		int heartRate = 50;

		if (heartRate >= 60 & heartRate <= 100) {
			System.out.println("正常");
		} else {
			System.out.println("不正常,得多运动了");
		}
		
		
		/**
			案例2:判断奇偶数?
		*/
		int number = 11;
		if (number % 2 == 0){
			System.out.println("偶数");
		} else {
			System.out.println("奇数");
		}


		/**
			案例3:
				小明参加java考试,他和他的父亲老明达成协议
				如果:
					成绩100,奖励一台跑车
					成绩80~99,奖励一台山地自行车
					当成绩60~80时,奖励广州一日游
					其他,暴打一顿
				
				说明: 默认成绩是在0~100范围内
		*/ 
		int score = 555;
		if (score == 100){
			System.out.println("奖励你一台跑车");
		} else if (score >= 80 && score <= 99){
			System.out.println("奖励你一台山地自行车");
		} else if (score >= 60 && score <= 80){
			System.out.println("奖励你广州一日游");
		} else {
			System.out.println("暴打一顿");
		}

	}
}

switch-case

基本语法

java
switch(表达式){
    case 常量值1:
        语句块1;
        //break;
    case 常量值2:
        语句块2;
        //break; 
        // ...
        [default:
         语句块n+1;
         break;
        ]
}

执行过程:

第1步:根据switch中表达式的值,依次匹配各个case。如果表达式的值等于某个case中的常量值,则执行对应case中的执行语句。

第2步:执行完此case的执行语句以后, ​ 情况1:如果遇到break,则执行break并跳出当前的switch-case结构 ​ 情况2:如果没有遇到break,则会继续执行当前case之后的其它case中的执行语句。--->case穿透 ​ ... ​ 直到遇到break关键字或执行完所有的case及default的执行语句,跳出当前的switch-case结构

使用注意点:

  • switch(表达式)中表达式的值必须是下述几种类型之一:byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0);

  • case子句中的值必须是常量,不能是变量名或不确定的表达式值或范围;

  • 同一个switch语句,所有case子句中的常量值互不相同;

  • break语句用来在执行完一个case分支后使程序跳出switch语句块;

    如果没有break,程序会顺序执行到switch结尾;

  • default子句是可选的。同时,位置也是灵活的。当没有匹配的case时,执行default语句。

案例

java
class SwitchTest{
	public static void main(String[] args) {
		// 脑子里瞬间想的一个问题(用三元解决):判断一个数是:正数|负数|0

		int number = 0;
		String message = number == 0 ? "0" : (number > 0 ? "正数" :	"负数");

		
	}
}
java
public class SwitchCaseTest1 {
    public static void main(String args[]) {
        int num = 1;
		switch(num){
			case 0:
				System.out.println("zero");
				break;
			case 1:
				System.out.println("one");
				break;
			case 2:
				System.out.println("two");
				break;
			case 3:
				System.out.println("three");
				break;
			default:
				System.out.println("other");
				//break;
		}
    }
}
java
class SwitchExercise {
	public static void main(String[] args) {
		// 案例1:使用switch-case实现:对学生成绩大于60,输出‘合格’。低于60,数据‘不合格’

		int score = 75;
		switch (score){
			case: 40
				System.out.println("不合格");
			case: 75
				System.out.println("合格");
		}
	}
}

Java Scanner 类

java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入

https://www.runoob.com/java/java-scanner-class.html

java
/**
	如何从键盘获取不同类型(基本类型数据、String类型)的变量;使用Scanner类

	1. 使用Scanner获取不同类型数据的步骤
	步骤1:导包 import.java.util.Scanner
	步骤2:提供(或创建)一个Scanner类的实例
	步骤3:调用Scanner类中的方法,获取的制定类型的变量(nextXxx())
	步骤4:关闭资源,调用Scanner类的close()


	2. 案例小明注册某交友网站,要求录入个人相关信息。如下:
	请输入你的网名、你的年龄、你的体重、你是否单身、你的性别等情况。


	3. Scanner类中提供了获取byte \ short \ int \ long \ float \ double \ boolean \ String 类型变量的方法。
		注意:没有提供获取char类型变量的方法。需要使用next().charAt(0)
*/

// 步骤1:导包 import.java.util.Scanner
import java.util.Scanner;
class ScannerTest {
	public static void main(String[] args) {
	
		// 步骤2:提供(或创建)一个Scanner类的实例
		Scanner scanner = new Scanner(System.in);


		System.out.println("欢迎进入默默交友网~<^>~!");
		System.out.print("请输入你的网名:");
		String nickname = scanner.next();
		
		
		System.out.print(nickname + "请输入你的年龄:");
		int age = scanner.nextInt();

		System.out.print(nickname + "请输入你的体重(单位: KG):");
		double weight = scanner.nextDouble();

		System.out.print(nickname + "你是否单身(是:true|否:false)):");
		boolean single = scanner.nextBoolean();

		System.out.print(nickname + "请输入你的性别(男\\女)");
		char sex = scanner.next().charAt(0);
		
		

		// 判断是否单身(返回的值是布尔值)(这里进行格式化一下)
		String singleFormat = single ? "单身" : "有对象";
		
		System.out.println(
			'\n' + 
			"你的网名是:" + nickname + '\n'
			+ "你的年龄:" + age + '\n'
			+ "你的体重:" + weight + '\n'
			+ "但你:" + singleFormat + '\n'
			+ "你的性别:" + sex
		);
		
	}
}

Math.random随机数

java
class RandomTest {
	public static void main(String[] args) {
		/**
			如何获取一个随机数?

			1. 可以使用Java提供的API:Math类的random()
			2. random()调用以后,会返回一个[0.0, 1.0)范围的double型的随机数

			随机min到max的一个整数   (前面的int表示将double强转换为int类型)
			公式:(int)(Math.random() * (max - min + 1) + min)

		*/
		
		double num = Math.random();
		
		// System.out.println(num);

		// 3. 需求1:获取一个[0, 100]范围的随机
		int num2 = (int)(Math.random() * (100 - 0 + 1) + 0);
		
		System.out.println(num2);
		
	}
}

for循环

java
/**
	循环结构之一:for循环

	1. Java中规范了3种循环结构:for、while、do-while
	2. 凡是循环结构,就一定会有4个要素;
	① 初始化条件
	② 循环条件 ---> 一定是boolean 类型的变量或表达式
	③ 循环体
	④ 迭代部分

	3. for循环的格式

	for (①; ②; ④) {

	}
	执行过程:① - ② - ③ - ④ - ② - ③ - ④ - ... - ②
*/

class For {
	public static void main(String[] args) {

		// 需求1:输出5行HelloWorld
		for (int i = 1; i <= 10; i++) {
			System.out.println("" + (i) +"行:Hello World!");
		}


		// 需求2:遍历1~100以内的偶数,并获取偶数的个数,获取所有的偶数的和
		// 偶数的总个数
		int EvenTotal = 0;
		// 偶数之和
		int EvenAnd = 0;
		for (int i = 1; i <= 100; i++) {
			if (i % 2 == 0) {
				System.out.println(i);
				EvenTotal++;
				EvenAnd+=i;
			}
		}
		System.out.println("1~100的偶数总共" + EvenTotal + "");		// 输出总个数
		System.out.println("1~100的偶数之和:" + EvenAnd);		// 输出总个数
	}
}

while循环

java
class While{
    public static void main(String[] args) {
        // 需求1: 循环5次Hello World

        int i = 1;
        while (i <= 5) {
            // System.out.println("Hello World");
            i++;
        }

    }
}
java
// 练习一:
import java.util.Scanner;
class WhileTest {
	public static void main(String[] args) {
		
		// 需求1:随机一个数,让用户猜?
		
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("哈喽,欢迎来到王者荣耀~");
		System.out.print("请输入1~100范围的一个整数:");
		int number = scanner.nextInt();

		int random = (int)(Math.random() * 100) + 1;

		int count = 1;

		int i = 1;
		while(number != random) {
			if (number < random) {
				System.out.println("小了");
			} else if (number > random) {
				System.out.println("大了");
			}
			
			System.out.print("请输入1~100范围的一个整数:");
			number = scanner.nextInt();
			count++;
		}
		System.out.println("恭喜你,猜对了!");
		System.out.println("共猜了" + count + "");
	}
}

do while循环

java
/**
	do while的格式

	do{


	}while(②)

	执行过程:① - ② - ③ - ④- ② - ③ - ④ - ... - ②

	说明:do while 循环至少执行一次循环体
*/
class DoWhile{
	public static void main(String[] args) {
		
		
		int i = 1;
		do{
			
			if (i % 2 == 0) {
				System.out.println("偶数:" + i);
			}
			i++;
		
		}while(i <= 100);

	}
}

无限循环结构的使用

java
import java.util.Scanner;
class ForWhileTest{
	public static void main(String[] args) {
		
		// 无限循环循环体
		/*
		while (true) {
			System.out.println("I Love You");
		}
		*/
		/*
		// 死循环的后面不能有执行语句
		for (;;){
			System.out.println("Hello World");
		}
		*/
		

		/*
			利用死循环做个案例:
				从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序
		*/ 
		Scanner scanner = new Scanner(System.in);
		int positiveNumber = 0;	// 正数
		int negativeNumber = 0;	// 负数

		while (true) {
			System.out.print("请输入任意数字(输入0结束程序):");
			int number = scanner.nextInt();
			if (number > 0) {
				positiveNumber++;
			} else if (number < 0) {
				negativeNumber++;
			} else { // 0
				System.out.println("正数的个数为" + positiveNumber);
				System.out.println("负数的个数为" + negativeNumber);
				System.out.println("程序结束");
				break;
			}
		}
		
	}
}