1.流程控制语句的概念:通过一些语句,来控制程序的执行流程。
2.流程控制语句的分类:
(1)顺序结构:Java程序默认的执行顺序,从上到下依次运行。
(2)分支结构(if,switch):
if三种格式:
(1)格式一:
if(关系表达式){
语句体;
}
//1.首先计算关系表达式中的值;
//2.如果关系表达式的值是true,就执行语句体;
//3.如果关系表达式的值是false,就不执行语句体;
//4.继续执行后面的语句内容。
public class JavaBasic17_conditionExpression {
public static void main(String[] args) {
System.out.println("开始");
//如果年龄大于18岁,就可以上网
int age = 17;
if (age>=18){
System.out.println("可以上网");//不会输出
}
System.out.println("结束");
}
}
(2)格式二:
if(关系表达式){
语句体1;
}else{
语句体2;
}
//1.首先计算关系表达式的值;
//2.如果表示表达式的值为true,就执行语句体1;
//3.如果关系表达式的值为false,就执行语句体2;
//4.继续执行后面的语句内容。
public class JavaBasic18_conditionExpress2 {
public static void main(String[] args) {
//判断一个数是奇数还是偶数
int num = 10;
if(num % 2 ==0){
System.out.println("偶数");
}else{
System.out.println("奇数");
}
}
}
(3)格式三:
if(判断条件1){
语句体1;
}else if(判断条件2){
语句体2;
}else{
语句体3;
}
//1.首先计算判断条件1的值;
//2.如果判断表达式1值为true,就执行语句体1,如果值为false,就计算判断条件2的值;
//3.如果判断表示式2的值为true,就执行语句体2,如果值为false,就执行语句体3;
public class JavaBasic19_conditionExpress3 {
//根据学生成绩,程序给出评价
public static void main(String[] args) {
int score = 76;
if(score>=90){
System.out.println("优秀");
}else if(score>=60 & score<90){
System.out.println("良好");
}else if(score>=0 & score<60){
System.out.println("不及格");
}else{
System.out.println("成绩有误!");
}
}
}
switch格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
//表达式:(将要被匹配的值)取值为byte,short,int,char,枚举,String;
//case:后面跟的是要和表达式进行比较的值;
//break:表示中断,结束的意思,用来结束switch语句;
//default:表示所有情况都不匹配的时候,就执行该处内容。
//1.首先计算表达式的值;
//2.依次和case后面的值进行比较,如果有对应的值,就执行相应语句,在执行的过程中,遇到break就会结束;
//3.如果所有case都没有匹配上,就会执行default后面的语句体,然后结束。
public class JavaBasic21_switch {
public static void main(String[] args) {
int week = 5;
switch(week){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("信息有误!");
break;
}
}
}
case穿透:
import java.util.Scanner;
public class JavaBasic23_casePenetrate {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入进行是星期几?");
int week = sc.nextInt();
switch(week){
case 1:
System.out.println("工作日");
case 2:
System.out.println("工作日");
break;
case 3:
System.out.println("工作日");
break;
case 4:
System.out.println("工作日");
break;
case 5:
System.out.println("工作日");
break;
case 6:
System.out.println("休息日");
break;
case 7:
System.out.println("休息日");
break;
default:
System.out.println("信息有误!");
break;
}
}
}
//当输入1时,输出的是【工作日 工作日】
//由于case中出现了重复代码,所以可以优化:
import java.util.Scanner;
public class JavaBasic23_casePenetrate {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入进行是星期几?");
int week = sc.nextInt();
switch(week){
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("工作日");
break;
case 6:
case 7:
System.out.println("休息日");
break;
default:
System.out.println("信息有误!");
break;
}
}
}
(3)循环结构(for,while,do...while):重复做某件事,具有明确的开始和停止标志。
for格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
//1.执行初始化语句;
//2.执行条件判断语句,看起结果是true还是false:
// 如果是false,循环结束;
// 如果是true,继续执行。
//3.执行循环体语句;
//4.执行条件控制语句;
//5.回到2继续。
public class JavaBasic24_forCirculation {
public static void main(String[] args) {
for (int i = 1; i <= 3; i++) {
System.out.println("这是折返跑第"+i+"次");
}
}
}
while格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
//1.执行初始化语句;
//2.执行条件判断语句,看起结果是true还是false:
// 如果是false,循环结束;
// 如果是true,继续执行。
//3.执行循环体语句;
//4.执行条件控制语句;
//5.回到2继续。
public class JavaBasic29_whileCirculation {
public static void main(String[] args) {
int i = 1;
while(i<=100){
System.out.println(i);
i++;
}
}
}
do...while格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
//1.执行初始化语句;
//2.执行循环体语句;
//3.执行条件控制语句;
//4.执行条件判断语句,看其结果是true还是false:
// 如果是false,循环结束;
// 如果是true,继续执行。
//5.回到2继续。
public class JavaBasic31_dowhileCirculation {
public static void main(String[] args) {
int count = 0;
do{
System.out.println("李佳顺");
count++;
}while(count<10);
}
}
三种循环的区别:
(1)for循环和while循环先判断条件是否成立,然后再决定是否执行循环体(先判断在执行);
(2)do...while循环先执行一遍循环体,然后再判断条件是否成立(先执行后判断)。
(3)for和while区别:
条件控制语句所控制的自增变量:
在for循环中,该变量归属于for循环的语法结构中,所以循环结束后,该变量就不能被再次访问;
在while循环中,该变量不归属于while循环语法结构中,所以循环结束后,该变量还可以继续使用。
(4)使用场景:
明确循环次数,推荐使用for循环;不明确循环次数,推荐使用while循环;do...while很少使用。
跳转控制语句:break,continue;
continue:跳过某次循环体内容的执行;
public class JavaBasic32_jumpControl {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if(i == 4){
continue;
}
System.out.println(i+"层到了!");
}
}
}
break:终止循环体内容的执行;
public class JavaBasic33_jumpControl2 {
public static void main(String[] args) {
for (int i = 20; i <= 80; i++) {
System.out.println("我已经"+i+"岁了!");
if(i == 60){
System.out.println("退休了");
break;
}
}
}
}
3.流程控制案例:
案例一:
import java.util.Scanner;
public class JavaBasic20_conditionExpressCase {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的成绩:");
int score = sc.nextInt();
if(score<=100 & score>=90){
System.out.println("优秀");
}else if(score>=60 & score<90){
System.out.println("良好");
}else if(score>=0 & score<60){
System.out.println("不及格");
}else{
System.out.println("成绩有误!");
}
}
}
案例二:
import java.util.Scanner;
public class JavaBasic22_switchCase {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入进行是星期几?");
int week = sc.nextInt();
switch(week){
case 1:
System.out.println("跳绳");
break;
case 2:
System.out.println("跑步");
break;
case 3:
System.out.println("深蹲");
break;
case 4:
System.out.println("步行");
break;
case 5:
System.out.println("排球");
break;
case 6:
System.out.println("瑜伽");
break;
case 7:
System.out.println("爬山");
break;
default:
System.out.println("信息有误!");
break;
}
}
}
案例三:
public class JavaBasic25_forCirculationCase {
public static void main(String[] args) {
for (int i = 1; i <= 5 ; i++) {
System.out.print(i);
System.out.print(" ");
}
System.out.println();
for (int i = 5; i >= 1 ; i--) {
System.out.print(i);
System.out.print(" ");
}
}
}
案例四:
public class JavaBasic26_forCirculationCase2 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 5 ; i++) {
sum+=i;
}
System.out.println(sum);
}
}
案例五:
public class JavaBasic27_forCirculationCase3 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if(i % 2 == 0){
sum += i;
}
}
System.out.println(sum);
}
}
案例六:
public class JavaBasic28_forCirculationCase4 {
public static void main(String[] args) {
//记录一行有多少个数
int n=0;
//获取所有的三位数
for (int i = 100; i <= 999 ; i++) {
//获取三位数的个位十位百位
int a = i % 10 ;
int b = i /10 %10 ;
int c = i / 100;
//判定是否符合水仙花数的规则
if(a*a*a+b*b*b+c*c*c == i){
//若符合水仙花规则,每行需要添加一个数,则n++
n++;
//如果一行有两个数了,则需要换行输出
if(n % 2 == 0){
System.out.println(i);
n=0;
//若小于两个数,则不换行输出
}else{
System.out.print(i);
System.out.print(" ");
}
}
}
}
}
案例七:
public class JavaBasic30_whileCirculationCase {
public static void main(String[] args) {
//定义白纸和山峰的厚度和高度
double paper = 0.1;
int height = 8844430;
//定义次数
int count = 0;
while(paper <= height){
count++;
paper *= 2 ;
}
System.out.println(count);
}
}
案例八:
import java.util.Scanner;
public class JavaBasic34_circulationAndjumpControl {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//给循环起一个标号,这样,就使得case 0中的break不是跳出case,而是跳出while。
loop:while(true){
System.out.println("请输入您要查询的星期数:(无需继续查看,请输入0)");
int week = sc.nextInt();
switch(week){
case 0:
break loop;
case 1:
System.out.println("跳绳");
break;
case 2:
System.out.println("跑步");
break;
case 3:
System.out.println("深蹲");
break;
case 4:
System.out.println("步行");
break;
case 5:
System.out.println("排球");
break;
case 6:
System.out.println("瑜伽");
break;
case 7:
System.out.println("爬山");
break;
default:
System.out.println("信息有误!");
break;
}
}
}
}
十一.Java基础语法之Random
1.random的作用:产生一个随机数。
2.random的步骤:
(1)导包;(2)创建对象;(3)获取随机数。
import java.util.Random;
public class JavaBasic35_random {
public static void main(String[] args) {
Random ra = new Random();
int number = ra.nextInt(10);//[0,10)
System.out.println(number);
}
}
3.random案例:
import java.util.Random;
import java.util.Scanner;
public class JavaBasic36_randomCase {
public static void main(String[] args) {
Random ra = new Random();
int number = ra.nextInt(100)+1; //[1,100]
System.out.println("请输入您要猜的数字(从1-100中挑选):");
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
int guess = sc.nextInt();
if(guess == number){
System.out.println("您猜对了!");
break;
} else if (guess > number) {
System.out.println("您猜大了!请继续猜测");
} else{
System.out.println("您猜小了!请继续猜测");
}
if(i == 4){
System.out.println("您失败了!");
System.out.println("正确答案是:"+number);
}
}
}
}



