Java基础语法02

Java基础语法02

一、数据输入

在这里插入图片描述

我们可以通过Scanner类来获取用户的输入。

1、导包,Scanner类在Java.util包下,所以需要将该类导入。导包的语句需要定义在类的上面.

import java.util.Scanner;
2、创建Scanner对象
Scanner sc = new Scanner(System.in);//创建Scaner对象,sc表示变量名。
3、接收数据
int i = sc.nexInt();//表示将键盘录入的值赋给int数返回。

示例:

import java.util.Scanner;
public class Demo01 {
    public static void main(String[] args) {
       //创建对象
        Scanner sc = new Scanner(System.in);
       //接收数据
        int x = sc.nextInt();
       //输出数据
        System.out.println("x的值为"+x);
    }
}

示例:

import java.util.Scanner;
public class ArithmeticOperator{
  public static void main(String[] args){
			Scanner sc = new Scanner(System.in);// 创建扫描器,获取控制台输入的值
			System.out.println("请输入两个数字,用空格隔开(num1 num2):");// 输出提示
			double num1 = sc.nextDouble();// 记录输入的第一个数字
			double num2 = sc.nextDouble(); // 记录输入的第二个数字
			System.out.println("num1+num2的和为:"+(num1+num2));// 计算和
			System.out.println("num1-num2的差为:"+(num1-num2));// 计算差
			System.out.println("num1*num2的积为:"+(num1*num2));// 计算积
			System.out.println("num1/num2的商为:"+(num1/num2));// 计算商
			System.out.println("num1%num2的余数为:"+(num1%num2));// 计算余数
			sc.close(); // 关闭扫描器
		}
}

二、流程控制语句

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每 条语句的执行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。

2.1流程控制语句分类

1、顺序结构

2、分支结构(if、switch)

3、循环结构(for、while、do…while)

2.2、顺序结构

顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行, 程序中大多数的代码都是这样执行的。

2.3、分支语句之if语句
1、【一种判断情况】
格式:
if (关系表达式) {
	语句体;
}

执行流程:

①首先计算关系表达式的值

②如果关系表达式的值为true就执行语句体

③如果关系表达式的值为false就不执行语句体

④继续执行后面的语句内容

示例:

public class IfDemo01 {
	public static void main(String[] args) {
		System.out.println("开始");
		//定义两个变量
		int a = 10;
		int b = 20;
		//需求:判断a和b的值是否相等,如果相等,就在控制台输出:a等于b
		if(a == b) {
			System.out.println("a等于b");
		}
		//需求:判断a和c的值是否相等,如果相等,就在控制台输出:a等于c
		int c = 10;
		if(a == c) {
		System.out.println("a等于c");
		}
		System.out.println("结束");
		}
}
2、【两种判断情况】
格式:
if (关系表达式) {
	语句体1;
} else {
	语句体2;
}

执行流程:

①首先计算关系表达式的值

②如果关系表达式的值为true就执行语句体1

③如果关系表达式的值为false就执行语句体2

④继续执行后面的语句内容

示例:

public class IfDemo02 {
	public static void main(String[] args) {
		System.out.println("开始");
		//定义两个变量
		int a = 10;
		int b = 20;
		b = 5;
		//需求:判断a是否大于b,如果是,在控制台输出:a的值大于b,否则,在控制台输出:a的值不大于b
		if(a > b) {
			System.out.println("a的值大于b");
		} else {
			System.out.println("a的值不大于b");
		}
			System.out.println("结束");
	}
}

案例:

需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还 是偶数。

分析:

①为了体现任意给出一个整数,采用键盘录入一个数据

②判断整数是偶数还是奇数要分两种情况进行判断,使用if…else结构

③判断是否偶数需要使用取余运算符实现该功能 number % 2 == 0

④根据判定情况,在控制台输出对应的内容

import java.util.Scanner;
public class IfDemo03 {
	public static void main(String[] args) {
		//为了体现任意给出一个整数,采用键盘录入一个数据。(导包,创建对象,接收数据)
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个整数:");
		int number = sc.nextInt();
		//判断整数是偶数还是奇数要分两种情况进行判断,使用if..else结构
		//判断是否偶数需要使用取余运算符实现该功能 number % 2 == 0
		//根据判定情况,在控制台输出对应的内容
		if(number%2 == 0) {
			System.out.println(number + "是偶数");
		} else {
			System.out.println(number + "是奇数");
		}
	}
}
3、【多种情况判断】
格式:
if (关系表达式1) {
	语句体1;
} else if (关系表达式2) {
	语句体2;
}else {
	语句体n+1;
}

执行流程:

①首先计算关系表达式1的值

②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值

③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值

④…

⑤如果没有任何关系表达式为true,就执行语句体n+1。

示例:键盘录入一个星期数(1,2,…7),输出对应的星期一,星期二,…星期日

import java.util.Scanner;
public class IfDemo04 {
	public static void main(String[] args) {
		System.out.println("开始");
		// 需求:键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个星期数(1-7):");
		int week = sc.nextInt();
		if(week == 1) {
			System.out.println("星期一");
		} else if(week == 2) {
			System.out.println("星期二");
		} else if(week == 3) {
			System.out.println("星期三");
		} else if(week == 4) {
			System.out.println("星期四");
		} else if(week == 5) {
			System.out.println("星期五");
		} else if(week == 6) {
			System.out.println("星期六");
		} else {
			System.out.println("星期日");
		}
			System.out.println("结束");
	}
}

if语句格式3案例:

需求:小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可 以控制小明的得分,请用程序实现小明到底该获得什么样的礼物(95分以上山地自行车一辆,90分以上 游乐场玩一次,80分以上变形金刚玩具一个,其他胖揍一顿),并在控制台输出。

分析:

①小明的考试成绩未知,可以使用键盘录入的方式获取值

②由于奖励种类较多,属于多种判断,采用if…else…if格式实现

③为每种判断设置对应的条件

④为每种判断设置对应的奖励

import java.util.Scanner;
public class IfDemo05 {
	public static void main(String[] args) {
		//小明的考试成绩未知,可以使用键盘录入的方式获取值
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个分数:");
		int score = sc.nextInt();
		//由于奖励种类较多,属于多种判断,采用if...else...if格式实现
		//为每种判断设置对应的条件
		//为每种判断设置对应的奖励
		//数据测试:正确数据,边界数据,错误数据
		if(score>100 || score<0) {
			System.out.println("你输入的分数有误");
		} else if(score>=95 && score<=100) {
			System.out.println("山地自行车一辆");
		} else if(score>=90 && score<=94) {
			System.out.println("游乐场玩一次");
		} else if(score>=80 && score<=89) {
			System.out.println("变形金刚玩具一个");
		} else {
			System.out.println("胖揍一顿");
		}
	}
}
2.4、switch语句
1、switch语句结构
switch (表达式) {
	case 1:
		语句体1;
		break;
	case 2:
		语句体2;
		break;
	...
	default:
		语句体n+1;
		[break;]
}

执行流程:

  • 首先计算出表达式的值
  • 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到 break就会结 束。
  • 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束 掉。
2、练习

​ 俗话说“商场如战场”,各大商家为了笼络有限的顾客,经常会打出各种各样的促销手段。例如, 会员折扣制度,即对会员的消费金额进行累加,当超过一定数额时,可以享受相应的折扣。累计消费金 额越高,享受的折扣越多。本实例将应用switch语句计算累计消费金额达到一定数额时,享受不同的折扣价格。

public class switchDemo01{
public static void main(String[] args){
	float money = 1170; // 金额
	String rebate = ""; // 折扣
	if (money > 200){
		int grade = (int)money/200; // 等级
		switch (grade){
			case 1:
				rebate = "95折";
				break;
			case 2:
				rebate = "9折";
				break;
			case 3:
				rebate = "85折";
				break;
			case 4:
				rebate = "83折";
				break;
			case 5:
				rebate = "8折";
				break;
			case 6:
				rebate = "78折";
				break;
			case 7:
				rebate = "75折";
				break;
			case 8:
				rebate = "73折";
				break;
			case 9:
				rebate = "7折";
				break;
			case 10:
				rebate = "65折";
				break;
			default:
				rebate = "6折";
		}
	}
	System.out.println("您累积消费金额为:"+money);// 输出消费金额
	System.out.println("您将享受"+rebate+"优惠!");// 输出折扣比例
	}
}

2.5 if语句和switch的区别

​ if语句和switch语句可以从使用的效率上来进行区别,也可以从实用性的角度来区分。如果从使用 的效率上进行区分,在对同一个变量的不同值作条件判断时,使用switch语句的效率相对更高一些,尤 其是判断的分支越多越明显。

​ 如果从语句的实用性的角度去区分,那switch语句肯定不如if条件语句。if条件语句是应用最广泛和 最实用的语句。

​ 技巧:

​ 在程序开发的过程中,具体如何来使用if和switch语句根据实际的情况而定,尽量做到物尽其用, 不要因为switch语句的效率高就一味地使用,也不要因为if语句常用就不应用switch语句。要根据 实际的情况,具体问题具体分析,使用最适合的条件语句。
ate+“优惠!”);// 输出折扣比例
}
}

2.5 if语句和switch的区别

​ if语句和switch语句可以从使用的效率上来进行区别,也可以从实用性的角度来区分。如果从使用 的效率上进行区分,在对同一个变量的不同值作条件判断时,使用switch语句的效率相对更高一些,尤 其是判断的分支越多越明显。

​ 如果从语句的实用性的角度去区分,那switch语句肯定不如if条件语句。if条件语句是应用最广泛和 最实用的语句。

​ 技巧:
​ 在程序开发的过程中,具体如何来使用if和switch语句根据实际的情况而定,尽量做到物尽其用, 不要因为switch语句的效率高就一味地使用,也不要因为if语句常用就不应用switch语句。要根据 实际的情况,具体问题具体分析,使用最适合的条件语句。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值