文章目录
前言
Java程序有三种结构,分别为顺序结构,分支结构和循环结构。本文主要介绍这三种结构。
一、顺序结构,分支结构和循环结构是什么?
- 顺序结构是程序按照顺序执行的结构,即代码按照从上到下的顺序依次执行。
- 分支结构是程序按照条件来选择需要运行的程序的结构,主要分为if语句和switch语句。
- 循环结构是程序按照条件来选择程序重复运行一段代码块次数的的结构,直到不满足条件才会停止,主要分为for语句,while语句和do-while语句。
二、分支语句
1.if
基本格式 :
if(运行条件){
要运行的代码
}else if(运行条件){
要运行的代码
}else …
例题:变量是否大于五
三种写法:
第一种:
public static void main(String[] args) {
int a = 4;
if (a > 5) {//当满足条件时会执行语句,否则跳过
System.out.println(a+"大于5");
}
}
第二种:
public static void main(String[] args) {
int a = 4;
//当满足第一个条件时会运行第一个if语句里的内容,
//然后结束该if语句;不满足会判断第二个if语句,当满足条件时会执行语句,否则到下一个if语句,如果没有if语句;则跳过该if语句;
if (a > 5) {
System.out.println(a+"大于5");
}else if (a < 5) {
System.out.println(a+"小于5");
}
}
第三种:
public static void main(String[] args) {
int a = 4;
//当满足第一个条件时会运行第一个if语句里的内容,否则直接运行else里的内容
if (a > 5) {
System.out.println(a+"大于5");
}else {
System.out.println(a+"小于5");
}
}
1.1 if语句注意事项
在使用if语句时,有一些注意事项需要注意:
-
if语句后面的条件表达式必须要有一个布尔值(True或False),如果条件表达式的值为True,则执行if语句块中的代码,否则跳过if语句块。
-
if语句块中的代码必须要缩进,通常是使用四个空格或一个制表符进行缩进。缩进的目的是为了表示if语句块的范围,只有当条件表达式为True时,缩进的代码才会被执行。
-
可以使用if-else语句来添加一个条件分支,当条件表达式为False时执行else语句块中的代码。
-
可以使用elif关键字来添加多个条件分支,elif关键字的使用必须在if和else关键字之间,可以有多个elif语句块。当多个条件表达式中只有一个为True时,执行对应的elif语句块中的代码。
-
当使用嵌套的if语句时,需要注意缩进的层次。每个嵌套的if语句块都需要比上一级的if语句块多缩进一次。
-
可以使用逻辑运算符(and、or、not)来组合多个条件表达式。and表示两个条件表达式都为True时整个条件为True,or表示两个条件表达式中至少有一个为True时整个条件为True,not表示对条件表达式取反。
-
在使用if语句时,可以使用比较运算符(==、!=、<、>、<=、>=)来比较两个值的大小或是否相等。
-
可以在if语句中使用嵌套的if语句,即在if语句块中再次使用if语句。
2.switch
基本格式:
switch(表达式){
case 值1 :
case 值2 :
case 值3 :
case 值4 :
…(个数取决于有多少不同的需求)
default:
}
题目:编写一个程序,根据用户输入的数字(1-7),输出对应的星期几。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个数字(1-7):");
int num = scanner.nextInt();
String day;
switch (num) {
case 1:
day = "星期一";
break;
case 2:
day = "星期二";
break;
case 3:
day = "星期三";
break;
case 4:
day = "星期四";
break;
case 5:
day = "星期五";
break;
case 6:
day = "星期六";
break;
case 7:
day = "星期日";
break;
default:
day = "输入无效";
break;
}
System.out.println(day);
}
2.1 switch语句穿透现象
穿透现象:switch语句的穿透现象指的是当一个case匹配成功后,如果没有break语句,程序将会继续执行下一个case的代码,而不会跳出switch语句块。
当switch语句中case语句不用break时可能会发生穿透现象
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个数字(1-7):");
int num = scanner.nextInt();
String day;
switch (num) {
case 1:
day = "星期一";
case 2:
day = "星期二";
break;
case 3:
day = "星期三";
break;
case 4:
day = "星期四";
break;
case 5:
day = "星期五";
break;
case 6:
day = "星期六";
break;
case 7:
day = "星期日";
break;
default:
day = "输入无效";
break;
}
System.out.println(day);
}
当输入1时day先被赋值成星期一,因没有break语句,继续运行下一个case的内容,被赋值为星期二;因该case有break语句;所以中断switch语句的运行;最终day被赋值成星期二。
2.2 switch注意事项
在使用switch语句时,需要注意以下几点:
-
switch语句中的表达式只能是整型、字符型或枚举类型,不能是浮点型或字符串类型。
-
每个case分支后面需要跟上break语句,否则程序会继续执行下一个case分支的代码,直到遇到break或switch语句结束。
-
switch语句的default分支是可选的,当没有与表达式匹配的case分支时,将执行default分支的代码。如果没有default分支,且没有匹配的case分支,switch语句将不执行任何代码。
-
case分支中的值必须是常量,不能是变量或表达式。
-
case分支中的值必须是唯一的,不能有重复的情况。
-
switch语句可以嵌套使用,即一个case分支中可以包含另一个switch语句。
-
在switch语句中可以使用多个case分支来执行同一段代码,例如:case 1: case 2: case 3: 执行相同的代码。
总而言之,使用switch语句时,需要确保表达式类型正确、每个case分支都有break语句、注意default分支的存在与否、case分支的值唯一且为常量。
3. if语句和switch语句使用场景
if语句和switch语句是两种常用的条件语句,它们的使用场景如下:
-
if语句:
- 当需要基于一个条件执行不同的代码块时,使用if语句。
- 当有多个条件需要判断,并且每个条件有不同的操作时,使用if语句。
- 当条件是一个表达式或逻辑判断时,使用if语句。
- 当条件不是一个静态值或具有多个可能结果时,使用if语句。
-
switch语句:
- 当需要根据一个变量或表达式的不同取值执行不同的代码块时,使用switch语句。
- 当有多个固定的取值需要判断,并且每个取值有不同的操作时,使用switch语句。
- 当条件是一个固定的值或枚举类型时,使用switch语句。
- 当存在大量的固定取值需要判断时,可以使用switch语句提高代码的可读性和可维护性。
需要注意的是,if语句可以处理更复杂的条件判断,并且每个条件可以有不同的操作。而switch语句只能根据固定的取值进行判断,并且每个取值有相应的操作。因此,在具体使用时需要根据实际情况选择合适的条件语句。
三、循环语句
1.for
基本格式:
for(初始化语句;循环条件;迭代语句){
循环体语句(要重复执行的代码);
}
题目:计算1到10的所有整数的平方和。
public class SumOfSquares {
public static void main(String[] args) {
int sum = 0; // 用于存放平方和的变量
for (int i = 1; i <= 10; i++) {
int square = i * i; // 计算当前整数的平方
sum += square; // 将平方加到sum变量中
}
System.out.println("1到10的整数的平方和为:" + sum);
}
}
1.1 for语句注意事项
在使用for语句时,有一些注意事项需要注意:
-
循环变量的初始值和终止条件:在for语句中,通过指定循环变量的初始值和终止条件来控制循环的次数。确保循环变量的初始值和终止条件是正确的,否则可能导致循环过早终止或者无限循环的情况发生。
-
循环变量的增量或减量:for语句中可以通过指定循环变量的增量或减量来控制每次循环的变化。确保循环变量的增量或减量是正确的,否则可能导致循环变量的变化不符合预期。
-
循环体中的操作:在for语句中,循环体是需要重复执行的部分。确保循环体中的操作是正确的,并且不会引起意外的结果。
-
循环变量的作用域:在for语句中定义的循环变量只在该语句内有效。确保在for语句外部不会使用该循环变量,否则可能引发错误。
-
嵌套循环:for语句可以嵌套使用,即在一个for语句中再使用一个for语句。在使用嵌套循环时,需要确保每个循环变量的初始值、终止条件和增量或减量都是正确的,以及确保内层循环的结束条件和循环变量的变化不会影响外层循环的执行。
2.while
基本格式:
while(循环条件){
循环体语句(要重复执行的代码);
迭代语句;
}
题目:编写一个程序,使用while循环输出1到10的所有偶数。
public class EvenNumbers {
public static void main(String[] args) {
int num = 1;
while (num <= 10) {
if (num % 2 == 0) {
System.out.println(num);
}
num++;
}
}
}
2.1 while语句注意事项
在使用while语句时,有一些注意事项需要注意:
-
循环条件的设置:while语句会根据循环条件的真假来确定是否继续执行循环。确保循环条件是正确的,并且能够在适当的时候为假,否则可能会导致无限循环的情况发生。
-
循环变量的更新:在使用while语句时,需要确保循环变量能够在循环体内被更新,以便在适当的时候终止循环。确保循环变量的更新逻辑是正确的,并且能够保证循环条件最终为假。
-
循环体内的操作:在while语句中,循环体是需要重复执行的部分。确保循环体内的操作是正确的,并且不会引起意外的结果。
-
循环终止条件:在使用while语句时,需要确保循环终止条件能够在适当的时候为真,以便终止循环。确保循环终止条件的判断逻辑是正确的,并且符合预期。
-
避免死循环:使用while语句时,需要注意避免出现死循环的情况,即循环条件始终为真而无法跳出循环。确保循环条件能够被满足终止循环,或者在循环体内设置合适的终止语句。
3.do-while
基本格式:
do{
循环体语句(要重复执行的代码);
迭代语句;
}while(循环条件)
题目:编写一个程序,要求用户输入一个整数,然后判断这个数是否是偶数,如果是偶数,则输出“偶数”,如果是奇数,则输出“奇数”。直到用户输入0为止。
代码示例:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num;
do {
System.out.print("请输入一个整数(输入0退出):");
num = input.nextInt();
if (num == 0) {
System.out.println("程序结束!");
} else if (num % 2 == 0) {
System.out.println(num + " 是偶数。");
} else {
System.out.println(num + " 是奇数。");
}
} while (num != 0);
}
}
运行结果示例:
请输入一个整数(输入0退出):3
3 是奇数。
请输入一个整数(输入0退出):12
12 是偶数。
请输入一个整数(输入0退出):0
程序结束!
4. for语句和while语句和do-while语句使用场景
for语句和while语句和do-while语句是常用的循环语句,它们的使用场景如下:
-
for语句:
- 当需要在已知次数的情况下进行循环时,for语句是一个很好的选择。例如,遍历一个数组或列表中的元素。
- 当需要按照一定步长递增或递减进行循环时,for语句可以很方便地实现。例如,生成一个等差数列。
- 当需要遍历一个范围内的数值时,for语句可以提供简洁的语法。例如,计算1到100之间的所有整数的和。
-
while语句:
- 当循环次数未知,但满足某个条件时需要进行循环时,while语句是一个不错的选择。例如,从用户输入中读取数据,直到输入特定的值为止。
- 当需要在循环开始之前先进行一次条件判断时,while语句可以很方便地实现。例如,根据某个条件来决定是否进入循环。
- 当需要根据某个条件来决定是否继续循环时,while语句可以提供灵活性。例如,通过判断计算结果是否满足要求来决定是否继续计算。
-
do-while语句:
- 当需要先执行一次循环体,然后根据条件判断是否继续循环时,do-while语句是一个不错的选择。例如,询问用户是否继续操作,至少需要执行一次。
- 当需要确保循环体至少执行一次时,do-while语句可以提供保证。例如,读取文件数据直到文件结束。
- 当需要在循环结束后再进行一次条件判断时,do-while语句可以很方便地实现。例如,根据用户输入来判断是否重新输入。
总结
总的来说,不同的语句适用于不同的场景,选择合适的语句可以提高代码的可读性和效率。
标签:语句,case,switch,break,while,循环,结构,分支 From: https://blog.csdn.net/qq_64791481/article/details/139408241