顺序结构
选择结构
if单选择结构
例:
public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入");
String s =scanner.nextLine();
if (s.equals("hello")){
System.out.println(s);
}
System.out.println("end");
scanner.close();
}
}
if双选择结构
例:
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
if(scanner.hasNextDouble()){
Double score = scanner.nextDouble();
if(score>60) {
System.out.println("及格");
}
else{
System.out.println("不及格");
}
}
scanner.close();
}
}
if多选择结构
可以有多个else if,必须在if之后。当其中一个else if为true时,其他的else if直接跳过。最多只有一个else语句,只能出现在最后。
多个if和多个else if的区别:
多个if语句时及时前一个if为真,后面的if也要继续判断,
如果用else if 则只有前者为假的时候它的if 才接着判断。
实例:
多个if是所有的if都会进行判断
if else if是只要有满足条件的,就不再对之后的else if进行判断
比如:
a = 2;
if(a==1) c=1;
if(a==2) c=2;
if(a%2==0) c=3;
最终结果c=3
a=2;
if(a==1) c=1;
else if(a==2) c=2;
else if(a%2==0) c=3;
最终结果c=2
参考:CSDN 半糖主义097
例:
public class Demo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
if(scanner.hasNextDouble()){
Double score = scanner.nextDouble();
if(score==100){
System.out.println("恭喜满分!");
}
if(score<100&&score>=90) {
System.out.println("A");
}
if(score<90&&score>=80) {
System.out.println("B");
}
if(score<80&&score>=70) {
System.out.println("C");
}
if(score<70&&score>=60) {
System.out.println("D");
}
if(score<60&&score>=50) {
System.out.println("E");
}
else{
System.out.println("成绩不合法!");
}
}
scanner.close();
}
}
嵌套的if结构
switch 多选择结构
其中字面量(literal)和变量/常量的区别是,变量/常量常常出现在等式左边,字面量只能出现在等式右边。
如 n=“hello world!”,n就是变量,hello world就是字面量。
- 在switch中,每个case语句后面需要加上break语句,不然会导致后面所有的case都会被执行,称为case穿透。
- 通过default来匹配不符合所有case的其他所有情况,类似if中的else。
public class Demo04 {
public static void main(String[] args) {
//case穿透 switch 匹配一个具体的值
char grade ='C';
switch (grade){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("及格");
break;
case 'D':
System.out.println("再接再厉");
break;
case 'E':
System.out.println("挂科");
break;
default:
System.out.println("非法等级");
break;
}
循环结构
While循环
例:
public class Demo06 {
public static void main(String[] args) {
int i=1;
int sum=0;
while (i<=100){
sum+=i;
i++;
}
System.out.println(sum);//输出5050
}
}
有的时候需要使用死循环,即永远不会结束的循环,如监听。
while(true){
\\方法体
}
do…while循环
for循环
for循环与while循环实现同一个功能的对比,for循环更简洁
public class forDemo01 {
public static void main(String[] args) {
int a = 1;//初始化条件
while (a<100){
System.out.println(a);
a+=2;//迭代
}
System.out.println("while循环结束!");
//for(初始化;布尔值判断;更新迭代)
for(int i=1;i<100;i+=2){
System.out.println(i);
}
System.out.println("for循环结束!");
}
}
for循环注意点:
- 最先执行初始化步骤。可以声明一种类型,可初始化一个或多个循环控制变量,也可以是空语句。当全部是空语句时,为死循环。
for(; ;)//死循环
- 然后,检测布尔表达式的值,如果为true,执行循环体。如果为false,循环终止,开始执行循环体后面的语句。
- 执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)
- 在此检测布尔表达式,循环执行上面的过程。
- for循环的快捷写法:1000.for 可自动补全为 for(int i=0;i<1000;i++)
练习题
- 练习题1
打印一个九九乘法表
参考答案:
public class forDemo03 {
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+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
- 练习题2
打印一个三角形
参考答案:
public class forDemo05 {
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 = 0; j <=i; j++) {
System.out.print("*");
}
for (int j = 1; j <=i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}