顺序结构
最简单的结构,从上往下执行,就像阅读文章的顺序一样,任何算法都离不开
public class order {
public static void main(String[] args) {
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
System.out.println("5");
}
//输出:1234
选择结构
-
有时不一定每行代码都需要执行,就像分叉的路不一定都要走
-
1.if单选结构
if(布尔表达式){} -
import java.util.Scanner; public class ifDemo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("猜猜我想的数字:"); String s = scanner.nextLine(); //s.equals:判断字符串是否相等 if(s.equals("666")){ System.out.println("猜中了"); } System.out.println("End"); scanner.close(); } } //只有符合要求才输出 //但是有时需要不符合要求时输出另一种
-
2.if双选择结构
if(布尔表达式){}
else{} -
import java.util.Scanner; public class ifDemo02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("猜猜我想的数字:"); String s = scanner.nextLine(); if(s.equals("666")){ System.out.println("答对了"); } else{ System.out.println("你不是我的知己啊~"); } System.out.println("结束了"); scanner.close(); } } //不符合可以输出另一个 //但是有时需要面对两个以上选择
-
if多选择结构
if(布尔表达式){}
else if() {}
else if() {}
.
.
else{} -
import java.util.Scanner; public class ifDemo03 { //输入成绩,判断等级 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入数据:"); int score = scanner.nextInt(); if(score==100){ System.out.println("恭喜满分"); } else if(score<99&&score>=80){ System.out.println("优秀"); } else if(score<80&&score>=60){ System.out.println("良好"); } else if(score<60&&score>=0){ System.out.println("不及格"); } else{ System.out.println("输入的数字不合法"); } } } //一个if最多一个else与之相配,可以有很多个else if //只执行一种情况
-
switch选择
switch语句,一般与case配套使用
变量类型可以是:byte short int char
从 JAVA SE 7开始,switch 支持String类型了
同时case标签必须为字符串常量或者字面量
case穿透 default位置无所谓
public class switchDemo01 { public static void main(String[] args) { int a = 2; switch(a){ case 2: System.out.println("2"); break; case 1: System.out.println("1"); case 3: System.out.println("3"); default: System.out.println("NO"); } } } //case穿透是占主导的,如果开始执行的语句后没有break语句,则会执行下一个语句,直到碰到break或者语句执行完毕 //default语句就像if多选择结构的else,但是default换位不会报错,而后者会报错; //default一般写在最后不表示执行它就结束了,如果在中间,后面又没有break,则会出现case穿透效应
循环结构
希望一个语句执行多次,就像复读机一样
-
while循环
-
while(条件判断){
语句块;
}
public class whileDemo01 { public static void main(String[] args) { int i=0; while(i<100){ i++; System.out.println(i); } } } //值为真,循环 //while(true){} //死循环 //要在while之前定义一个变量并初始化,才会有条件判断
do…while循环
不管条件是否成立,都会先执行一遍
//先执行一遍,再判断 public class DoWhileDemo01 { public static void main(String[] args) { int a = 2; do{ System.out.println(a); a++; }while(2>3); System.out.println("==========="); while(a>3){ System.out.println(a); a++; } } //输出结果:2 =========== //第二个没有输出
小应用
//用while循环计算1+2+3+。。。100 public class whileDemo02 { public static void main(String[] args) { int i=0; int sum = 0; while(i<=100){ sum+=i; i++; } System.out.println(sum); } }
-
-
for循环
1.循环更简单
2.for循环是支持迭代的一种通用结构,是最有效,最灵活的循环结构
3.执行的次数在执行前就确定,语法格式:
for(初始化;布尔表达式;更新){
//代码块
}2.while与for循环的比较
public class forDemo01 { public static void main(String[] args) { int i=1;//初始化条件 while(i<=100){//条件判断 System.out.println(i); i++; } System.out.println("==============================="); for (int a = 1; a <=100; a++) { System.out.println(a); } } } //执行顺序 //for(;;) 死循环 //输出:两遍1到100 //但是for循环的代码更少
for循环的简单应用
分别计算1-100的奇数与偶数之和
//分别计算1到100之间技术与偶数的和 public class forDemo02 { public static void main(String[] args) { int oddSum = 0; int evenSum = 0; for (int i = 0; i <= 100; i++) { if(i%2==0){ oddSum+=i; }else{ evenSum+=i; } } System.out.println("奇数的和:"+oddSum); System.out.println("偶数的和:"+evenSum); } }
用while或for循环输出1-1000之间能被5整除的树,并且每行输3个
//用while或for循环输出1-1000之间能被5整除的树,并且每行输3个 public class forDemo03 { 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(); //System.out.print("\n"); } } } } //println 输出完会换行 //print输出不会换行
做九九乘法表
/做九九乘法表 public class forDemo04 { public static void main(String[] args) { for (int i = 1; i <= 9; i++) { for (int j = 1; j <=i; j++) { System.out.print(i+"*"+j+"="+(j*i)+"\t"); //这是按行打印 } System.out.println(); } } } //先打印第一列 //把固定的一用循环包起来 //去掉重复项:j<=i //调整样式
做一个三角形
public class TriangleDemo { public static void main(String[] args) { for (int i = 0; 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("*");//第三部分输出图案,注意,图案不对称,所以是j<i,不再是j<=i } System.out.println(); } } } //把三角形用一个正方形框起来,可以分成4分,每份由一个直角三角形组成
-