Appearance
顺序结构
从上倒下依次执行代码
当前变量尚未声明,就使用会报错
分支语句
分支语句这里我就不多说了,因为我是学前端的,所以JS跟Java分支语句差不多,跟写js语法一样
- if...
- if...else if...else if...else
- if...else...
- 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;
}
}
}
}