Java的流程结构
一. 顺序结构
- Java中的基础结构就是顺序结构,就是程序在执行的时候从上至下去执行,顺序结构最简单却容易被忽视的。
案例:
public static void main(String[] args) {
System.out.println("一");
System.out.println("二");
System.out.println("三");
}
输出:
一
二
三
二. 选择结构(if)
- 选择结构顾名思义就是,选择你想要的输出;
使用if单选择结构,语法
if(表达式){
表达式为(我们想要的数)时就执行的方法
}
案例:
import java.util.Scanner;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("今天是不是星期六");
int a = scanner.nextInt();
//如果输入等于六执行括号内的语句
if(a==6){
System.out.println("今天星期六放假了");
}
scanner.close();
}
if双选择结构
-
两种选择方式,要么执行 if,要么执行else,语法参照:
-
if(表达式){
表达式为(我们想要的数)执行此处
}else{
表达式为(不是我们想要的数)执行此处代码
} -
案例:
import java.util.Scanner;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("今天星期几");
int a = scanner.nextInt();
//如果输入等于六执行括号内的语句
if(a==6){
System.out.println("今天星期六放假了");
}esle{
System.out.println("今天要上学");
}
scanner.close();
}
if多选择结构
-
语法:
-
if(布尔表达式){
表达式为true执行此处
}else if(布尔表达式){
表达式为true执行此处
}else if(布尔表达式){
表达式为true执行此处
}else if(布尔表达式){
表达式为true执行此处
}else{
表达式为flase执行此处
} -
案例:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int a = scanner.nextInt();
if (a == 100) {
System.out.println("天才");
} else if (90 <= a && 100 > a) {
System.out.println("优秀");
} else if (80 <= a && 90 > a) {
System.out.println("不错");
} else if (70 <= a && 80 > a ) {
System.out.println("一般");
} else if (60 <= a && 70 > a) {
System.out.println("继续努力");
} else if (60 > a) {
System.out.println("不及格");
} else {
System.out.println("输入的成绩不合法~~~");
}
scanner.close();
}
嵌套的if结构
- 案例:自动生成一个随机数1-1000,用户进行猜数字的游戏.
import java.util.Random;
import java.util.Scanner;
public class 脑子空白 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//生成一个随机数
int i = new Random().nextInt(1000);
//设置猜的次数
int a= 9;
System.out.println("请输入1-1000的整数:");
//循环几次
while (a >= 0) {
System.out.println("一共有"+a+"机会");
int num = scanner.nextInt();
if (i == num) {
System.out.println("猜对了!!!这个数是:" + i);
break;
} else if (num > i) {
System.out.println("猜大了");
} else {
System.out.println("猜小了");
}
if (a == 0) {
System.out.println("游戏结束!");
}
a--;
}
scanner.close();
}
}
三. switch选择结构
- switch搭配case进行选择的判断,它也是属于一种多选的选择结构
- switch中的变量类型可以是byte,short,int, char
支持String类型 - case中的值为字符串常量或者是字面量
- 语法:
switch(a){ // 输出:a选项
case a: // a选项
System.out.pirntln(); break;
case b: // b选项
System.out.pirntln();break;
case c: // c选项
System.out.pirntln(); break;
defalut:
}
案例:
import java.util.Scanner;
public class 空白 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入1~7星期");
int a = scanner.nextInt();
switch (a) {
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作用就是当循环执行到某处时就退出整个循环.
- continue关键字,与break不同的是,它不是退出整个循环,而是触发到相应的条件时,程序会从循环头开始执行。
- default关键字,作用除了那些选项剩下没有的选项输出。
四. 循环结构
while循环
-
语法格式:
-
while(布尔表达式){
表达式为true时进行执行
} -
只要表达式为true就会一直执行下去
-
大部分情况下,我们需要对循环进行结束
-
少部分情况下的循环需要一直进行下去,比如服务器的请求响应监听等
-
while循环可能会导致死循环,会让程序崩溃
-
案例:输出1-100的整数和
public static void main(String[] args) {
int i = 0;
int sum = 0;
while(i<=100){
sum = sum + i;
i++;
}
System.out.println(sum);
}
do…while循环
语法格式:
do{
代码执行
}while(布尔表达式);
- while与do…while的区别
- while先判断后执行,do…while是先执行后判断
- do…while中do中的方法体必须执行一次,这是他们的主要区别
- 案例:
int i = 0;
int sum = 0;
do{
i++;
}while (i<0);
System.out.println(i);
}
代码中布尔表达式为false,输出 i 的值为1.因为执行了一次,如果为while循环输出的 i 的值就是0了
for循环
-
所有的循环都可以用while和do…while语句进行表示,Java中也提出了另一种更简单表示循环的结构for循环,它可以使代码结构表现的更加简单:
-
语法结构:
-
for(变量初始化;布尔表达式;变量更新){
//代码语句
}
案例:计算出1-100之间的偶数和奇数的和
//计算0-100奇数和偶数的和
int sum1 = 0;
int sum2 = 0;
for (int i = 0; i <= 100 ; i++) {
if(i % 2 == 0){
sum1 += i;
}else {
sum2 += i;
}
System.out.println(i);
}
System.out.println(sum1);//偶数2550
System.out.println(sum2);//奇数2500
}
使用for循环输出1-1000中能够被5整除的数,并隔三个数进行换行
public static void main(String[] args) {
for (int i = 0; i <=1000 ; i++) {
if(i % 5 == 0){
System.out.print(i + "\t");//不换行
}
if(i % (5*3) == 0){
System.out.println();//每隔三个数换行
}
}
}
输出九九乘法表用for(使用for嵌套循环)
public static void main(String[] args) {
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {
System.out.print(i + "*" + j + "=" + i*j + "\t");
}
System.out.println();
}
}
输出九九乘法表或用while(使用for嵌套循环)
public static void main(String[] args) {
int a=1;
while(a<=9){
for(int c=1;c<=a;c++){
System.out.print(c+"*"+a+"="+a*c+"\t");
}
System.out.println();
a++;
}
输出结果:
案例:下面再做一个练习:打印三角形
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
//一
for(int j = 5; j >= i; j--){
System.out.print(" ");
}
//二
for(int j = 1; j <= i; j++){
System.out.print("*");
}
//三
for(int j = 1; j < i; j++){
System.out.print("*");
}
System.out.println();
}
}
输出:
注意:可能有点不理解,我们将上面的图片进行拆分就明白了,看下图,图片被分成了三个部分,分别表示为1, 2,3三个区域,这三个区域分别表示程序中的一,二,三,最后一部分是输入的四行,所以将=号去掉就可以了
本文地址:https://blog.csdn.net/weixin_48101294/article/details/110261369