Java结构
顺序结构 (了解即可)
-
Java的基本结构就是顺序结构,就是指没有特别指明,就按照从上到下,从左到右的顺序一句一句执行。
-
顺序结构是最简单的算法结构
-
它是任何一个算法都离不开的一种基本算法结构
选择结构
if单选择结构
我们使用if语句,来判断一条程序是否可执行
语法:
if (布尔表达式){
//如果布尔表达式为True将执行的语句
}
if双选择结构
当我们要判断两个条件时,比如说只有单独的True和False我们可以使用if双选择结构
语法:
if(布尔表达式){
//如果布尔值为True执行这条
}else{
//如果布尔值为False则执行这条
}
if多选择结构
实际情况肯定不只是有两个条件,会存在更多,存在区间多级判断
语法:
if (布尔表达式1){
//如果布尔表达式1的值为True执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为True执行代码
}else if(布尔表达式 3){
//如果布尔表达式 2的值为True执行代码
}else{
//如果以上布尔表达式都为False则执行代码
}
注意:
-
if语句最多有 1 个 else 语句,并且必须安排在 else if 语句之后
-
if 语句可以有无数个else if 语句,但必须在 else 语句之前
-
一旦其中一个 else if 语句检测为 True ,那么之后的 else 与 else语句都会跳过
嵌套的if结构
语法:
if(布尔表达式 1){
//如果表达式1 的值为True执行代码
if(布尔表达式 2){
//如果布尔表达式2 的值为True执行代码
}
}
Switch多选择结构
多选择结构除了if还有一个实现方式是 switch case 语句
switch case 语句用来判断一个变量与某个值是否相等,可以拥有多个值也被称为分支
String name = "root";
?
switch(name){
case "root":
System.out.println("欢迎回来root!");
break;
case "践行践远":
System.out.println("你好");
break;
default:
System.out.println("闲杂人等,速速离去!")
}
语句解释:
-
break:结束之后的语句
-
default:在值没被匹配时,默认执行default后面的语句
Switch 语句中的变量类型范围:
-
byte、short、int和char.
-
从 Java SE 7 开始支持字符串 String 类型了
-
同时 case 标签必须为字符串常量或字面量.
循环结构
While 循环
while是最基本的循环,以下是他的语法:
while(布尔表达式){
//循环内容
}
?
//输出1到100之间的和
public class WhileDemo01 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
?
while (i<100){
i++;
sum=i+sum;
}
System.out.println(sum);
}
}
注意:
-
只要布尔表达式为True,循环会一直执行
-
我们要防止出现 [死循环] ,防止程序崩溃和浪费资源
-
只有在少部分情况下执行死循环,如服务器的请求和响应监听
do...while 循环
while需要满足条件才能循环,dowhile则是不满足条件也能执行一次,满足条件则则正常执行循环
语法:
do {
//循环语句
}while(//布尔表达式);
区别:
-
while先判断后循环,而dowhile是先执行后判断
-
Do...While会保证循环中的内容先执行一次
for 循环
for循环,可以使一些循环结构变得更加简单
for循环语句支持迭代的一种通用结构,是最有效、最灵活的循环结构
语法:
for(初始化; 布尔表达式; 更新){
//循环语句
}
实验例子:
//计算0到100之间的奇数和偶数的和
int oddSum = 0;
int evenSum = 0;
?
for (int i=0; i<=100; i++){
if (i%2!=0){
oddSum=i+oddSum;
}else {
evenSum=i+evenSum;
}
}
System.out.println("奇数和:"+oddSum); //2500
System.out.println("偶数和:"+evenSum); //2550
System.out.println("奇数和加偶数和:"+(oddSum+evenSum));
?
?
//循环输出1-1000之间能被5整除的数字,并且每行输出三个
for (int i = 1; i <= 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if (i%(5*3)==0){
System.out.println();
}
}
?
?
//打印九九乘法表
for (int a=1; a<=9; a++){
for (int b=1; b<=a; b++){
System.out.print(a+"*"+b+"="+(a*b)+"\t");
}
System.out.println();
}
//print()是不换行输出
//println()是换行输出
说明:
-
最先执行初始化值,并声明一种类型。
-
然后,检测布尔表达式的值,如果为True,循环体被执行。
-
如果为False则循环终止,进入循环后,更新循环控制变量
for循环的死循环
for(; ; ){
//循环语句
}
注意:在for循环中的三个值都可以为空
增强For循环
增强For循环通常用在数组之中,用来遍历
是Java5 要引入用于数组或集合的增强型 for 循环
语法:
for(声明语句 : 表达式){
//代码语句
}
声明语句:是一个声明类型的局部变量,用来打印遍历时多次赋值进行输出
表达式:是指要访问的数组名,或是返回值的数组的方法
break 与 continue
解释:
-
break:在任何循环语句的主体部分,都可以使用break强行退出循环>,不执行后面的语句
-
break可以在switch中使用防止穿透
-
continue:在循环语句中,可以终止某次循环过程,跳过后面未执行语句,进行下一次循环
实验例子:
//每次输出10的倍数时跳过
int i =0;
while (i<100){
i++;
if (i%10==0) {
System.out.println();
continue;
}
System.out.print(i+"\t");
}
?
//输出到10的倍数时终止循环
int i = 0;
while (i<100){
i++;
if (i%10==0){
break;
}
System.out.println(i);
}
}
循环语句练习:
第一题:打印1到100的和
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i<100){
i++;
sum=sum+i;
}
System.out.println(sum);
}
第二题:打印正五层三角形
public static void main(String[] args) {
for (int i = 1; i <=5; i++) {
for (int a = 5; a>=i; a--) {
System.out.print(' ');
}
for (int b = 1; b <=i; b++) {
System.out.print('*');
}
for (int c = 1; c < i; c++) {
System.out.print('*');
}
System.out.println();
}
}
第三题:打印倒五层三角形
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int a = 1; a <= i; a++) {
System.out.print(' ');
}
for (int b = 5; b >= i; b--) {
System.out.print('*');
}
for (int c = 5; c > i; c--) {
System.out.print('*');
}
System.out.println();
?
}
}