我的Java学习笔记(4):顺序与分支结构

顺序结构:
顺序结构指的是语句依次排列,并且语句的先后次序决定了它的执行次序;例如下面的例子,生成了一个在20以内的加法题

import java.util.*;

public class Main {
		public static void main(String[] args) {
			Scanner kb=new Scanner(System.in);
			int a,b;
			a=(int)(Math.random()*20);//math类中的random方法可以产生[0,1)之间的随机数
			b=(int)(Math.random()*20);
			System.out.printf("%d+%d=\n",a,b);
		}
	}

执行结果为产生了一个20以内的加法算式:
在这里插入图片描述
分支结构分为几种:

  • 1.if(条件表达式)语句A
  • 2.if(条件表达式)语句A; else 语句B;
  • 3.嵌套if语句
  • 4.switch(表达式A){
    case 常量表达式1:语句序列1;break;
    ……
    default:语句序列n+1;
    }

1.if(条件表达式)语句A

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner kb=new Scanner(System.in);
		int a,b,t;
		a=(int)(Math.random()*20);
		b=(int)(Math.random()*20);
		if (a<b) {
			t=a;
			a=b;
			b=t;
		}
		System.out.printf("%d-%d=\n", a,b);
	}
}

用if的分支语句判断了两个数的大小,从而生成一个减法算式,运行结果如下:在这里插入图片描述
2.if(条件表达式)语句A; else 语句B;

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner kb=new Scanner(System.in);
		int a,b,answer;
		a=(int)(Math.random()*20);
		b=(int)(Math.random()*20);
		System.out.printf("%d+%d=\n", a,b);
		answer=kb.nextInt();//接受用户输入的答案
		if(answer==a+b) {
			System.out.printf("Good!\n");//如果用户输入正确就返回good
		}
		else {
			System.out.printf("Wrong!\n");
			System.out.printf("The right answer is %d\n",a+b);//否则返回正确答案
		}
	}
}

运行结果如下:
在这里插入图片描述
3.嵌套if语句
用if语句嵌套稍作修改,就能把上两个进行加法和减法的功能加上乘法的功能写在一起:

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner kb=new Scanner(System.in);
		int a,b,t,CorrectAnswer,answer,option;
		a=(int)(Math.random()*20);
		b=(int)(Math.random()*20);
		option=(int)(Math.random()*3);//生成0或1或2的数字,用他们分别代表要进行的操作分支
		if(option==0) {
			System.out.printf("%d+%d=\n", a,b);
			CorrectAnswer=a+b;
		}
		else {
			if(option==1) {
				if(a<b) {
					t=a;a=b;b=t;
				}
				System.out.printf("%d-%d=\n",a,b);
				CorrectAnswer=a-b;
			}
			else {
				System.out.printf("%d*%d=\n",a,b);
				CorrectAnswer=a*b;
			}
		}
		answer=kb.nextInt();
		if(answer==CorrectAnswer)
		{
			System.out.printf("Good!\n");
		}
		else {
			System.out.printf("Wrong!");
			System.out.printf("The Correct answer is %d\n", CorrectAnswer);
		}
	}
}//随机生成一个加法减法或乘法运算

运行结果如下:
在这里插入图片描述
4.switch语句
switch(表达式A){
case 常量表达式1:语句序列1;break;
……
default:语句序列n+1;
}
上一个用if嵌套完成的例子也可以稍作修改,用switch语句来完成一样的功能。需要注意的是,
1.)switch()括号里的表达式可以是byte,short,int或char类型,但是不能是其它四个类型;
2.)case后面直接跟的常量表达式只能是常量,不可以是变量,且不同case后面的常量要不一样;
3.)break是为了在某一个case运行之后直接跳出switch,它不是必须的,根据程序的逻辑可以选择是否需要break。

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner kb=new Scanner(System.in);
		int a,b,t,CorrectAnswer,answer,option;
		a=(int)(Math.random()*20);
		b=(int)(Math.random()*20);
		option=(int)(Math.random()*3);//生成0或1或2的数字,用他们分别代表要进行的操作分支
		//option的值当作switch的表达式
		switch(option) {
		case 0:
			System.out.printf("%d+%d=\n", a,b);
			CorrectAnswer=a+b; break;
		case 1:
			if(a<b) {
				t=a;a=b;b=t;
			}
			System.out.printf("%d-%d=\n",a,b);
			CorrectAnswer=a-b; break;
		default:  //也就相当于case 2:
			System.out.printf("%d*%d=\n",a,b);
			CorrectAnswer=a*b;
		}	
		answer=kb.nextInt();
		if(answer==CorrectAnswer){
			System.out.printf("Good!\n");
			}
		else {
			System.out.printf("Wrong!");
			System.out.printf("The Correct answer is %d\n", CorrectAnswer);
			}
		}
}//随机生成一个加法减法或乘法运算的switch写法

运行结果如图所示:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值