控制语句
- 分支/判断语句: if-else语句 、switch语句
- 循环语句 for循环、while循环、do…while循环
- 与程序跳转相关的其他语句 break、continue、return
if语句
-
简约版
if(条件
){
如果条件
成立,执行该语句;
} -
完整版
if(条件
){
如果条件
成立,执行语句1;
}else{
条件
不成立,执行语句2;
} -
豪华版
if(条件1
){
如果条件1
成立,执行语句1
}else if(条件2
){
如果条件2
成立,执行语句2
}else if(条件3
){
如果条件3
成立,执行语句3
}…
…
}else{
如果以上条件都不成立
,执行这里面的代码
}
- if中条件的结果一定是布尔类型的
- 如果都是if语句 ,所有if语句都会被执行
- 加了else的if语句 效率会比全是if的效率高
- if:万能的(判断范围)
switch语句
- switch(值或表达式){
case 具体的值1: (类型必须和小括弧中的 数据类型保持一致)
如果匹配上值1,就执行这里的代码
break; (在switch中代表结束这个switch)
case 具体的值2:
如果匹配上值2,就执行这里的代码
break;
case 具体的值3:
如果匹配上值3,就执行这里的代码
break;
…
default:
如果以上的值都不匹配,就会走这里的代码
break;
}
//代码呈现
switch(int i){
case 1:
int a = 1;
break;
case 2:
int a = 2;
break;
case 3:
int a = 3;
break;
default:
int a = 4;
break;
}
- switch中的值或表达式一定是byte、short、int、char(从jdk1.7开始支持String)
- switch:固定的几个选项(10个以内)
- 特点 :穿透现象
键盘输入
- 创建键盘输入的对象
Scanner s =new Scanner(System.in); - 调用键盘输入对象的输入int类型的整数的方法,控制台会等待用户输入
System.out.println(“请输入一个分数:”);
int score=s.nextInt(); (将键盘输入赋值给 score ) - 随机数的对象 Random
Random r = new Random();
int score = r.nextInt(3); (随机一个0~2之间的整数 )
快捷键
- 快速多行注释: ctrl + /
- 快速补充:alt + / 如:
main
、syso
- 快速格式化:ctrl + shift + F
练习
1. 商品换购系统
满100元可参与换购
手动输入本次消费的金额:满100元可
选项一: +1元换购鼠标
选项二: +5元换购键盘
选项三: +10元换购充电宝
选项四: +20元换购移动硬盘
根据输入的选项来判断换购的物品,并显示最终消费
否则直接结算显示消费金额。
package test;
import java.util.Scanner;
//商品换购系统
public class shopping {
public static void main(String[] args) throws InterruptedException {
//全局变量k,用于do while循环
int k=1;
//全局变量sum,用于统计消费金额
double sum = 0;
do{
//键盘输入Scanner
Scanner s = new Scanner(System.in);
System.out.println("请输入本次消费的金额:");
double money = s.nextInt();
if (money < 100 && money > 0) {
System.out.println("本次消费金额不足100元,无法换购,请继续消费");
//结束当前循环,返回开始进行下次循环
continue;
} else if (money >= 100) {
System.out.println("本次消费的金额:" + money + "元,可参与换购");
System.out.println("选项一: +1元换购鼠标");
System.out.println("选项二: +5元换购键盘");
System.out.println("选项三: +10元换购充电宝");
System.out.println("选项四: +20元换购移动硬盘");
System.out.println("请输入您想换购的选项(1,2,3,4)");
//输入选择的选项并赋值给choose
int choose = s.nextInt();
//延迟1秒
Thread.sleep(1000);
System.out.println("电脑正在计算");
Thread.sleep(1000);
//如果选择1
if (choose == 1) {
money = money + 1;
System.out.println("换购鼠标成功,本次消费" + money + "元");
}
//如果选择2
if (choose == 2) {
money = money + 5;
System.out.println("换购键盘成功,本次消费" + money + "元");
}
//如果选择3
if (choose == 3) {
money = money + 10;
System.out.println("换购充电宝成功,本次消费" + money + "元");
}
//如果选择4
if (choose == 4) {
money = money + 20;
System.out.println("换购移动硬盘成功,本次消费" + money + "元");
}
} else {
System.out.println("金额有误,请重新输入");
continue;
}
Scanner a = new Scanner(System.in);
System.out.println("您要继续换购吗? 1.继续 2.回家了");
k = a.nextInt();
if(k!=1&&k!=2){
System.out.println("违反规则输入,本次购物作废,请重新换购");
continue;
}
//之前总消费金额加上这次的金额
sum = sum+money;
}
//当k不等于2的时候循环,等于2时跳出循环
while(k!=2);
System.out.println("总共消费了"+sum+"元,"+"回家看电视了~");
}
}
2. 机票订购系统
假设机票的原价是1000元。
根据淡季,旺季 以及 头等舱 经济舱 来判断机票的最终价格。
首先用户输入选择旅游的时间 :1淡季 2旺季
然后继续输入选择舱位:1头等舱 2经济舱
最后显示最终的机票价格
若输入其他数字则提示信息输入有误并结束程序
注: 5 6 7月, 9 10 11月为旺季,其他为淡季,
淡季经济舱打6折 ,头等舱打7折
旺季经济舱打8折,头等舱打9折
package test;
import java.util.Scanner;
// 机票订购系统
public class air_ticket {
public static void main(String[] args) throws InterruptedException {
// 全局变量k,用于do while循环
int k = 1;
// 全局变量space,用于选择的舱位
int space = 0;
// 全局变量sum,用于统计总车票费
double sum = 0;
// 全局变量ticket,用于票价
double ticket = 1000;
do {
//局部变量month_choose,用于选择旅游时间
int month_choose;
//键盘输入
Scanner s = new Scanner(System.in);
System.out.println("请输入旅游的时间(1-12):");
int month = s.nextInt();
if (month <= 0 || month > 12) {
System.out.println("您不在地球,请返回地球旅游");
continue;
}
do {
System.out.println("请选择您想要的舱位:1.头等舱 2.经济舱");
space = s.nextInt();
if (space != 1 & space != 2)
System.out.println("请选择正确的舱位");
} while (space != 1 & space != 2);
//延迟输入1秒
Thread.sleep(1000);
System.out.println("电脑正在计算");
Thread.sleep(1000);
if (month >= 5 && month <= 11 && month!=8) {
System.out.print("您旅游的时间是旺季,");
if (space == 1) {
ticket = ticket * 0.9;
System.out.println("选择的是头等舱");
System.out.println("为您打了9折,最终的票价为" + ticket + "元");
}
if (space == 2) {
ticket = ticket * 0.8;
System.out.println("选择的是经济舱");
System.out.println("为您打了8折,最终的票价为" + ticket + "元");
}
} else if (month <= 0 || month > 12) {
System.out.println("您不在地球,请返回地球旅游");
continue;
} else {
System.out.print("您旅游的时间是淡季,");
if (space == 1) {
ticket = ticket * 0.7;
System.out.println("选择的是头等舱");
System.out.println("为您打了7折,最终的票价为" + ticket + "元");
}
if (space == 2) {
ticket = ticket * 0.6;
System.out.println("选择的是经济舱");
System.out.println("为您打了6折,最终的票价为" + ticket + "元");
}
}
Scanner a = new Scanner(System.in);
System.out.println("您要继续订票吗? 1.继续 2.关闭");
k = a.nextInt();
if(k!=1&&k!=2){
System.out.println("违反规则输入,本次订票作废,请重新订票");
continue;
}
//上次总票价加上这次的票价
sum = sum + ticket;
} while (k != 2);
System.out.println("此次订票总共花费" + sum + "元,欢迎下次订票");
}
}
3. 猜拳游戏
玩家出拳 判断出拳文字 (判断玩家输入有误情况)
电脑出拳 判断出拳的文字
判断胜负
package test;
import java.util.Random;
import java.util.Scanner;
//猜拳游戏
public class guess2 {
public static void main(String[] args) throws InterruptedException {
int k =1;
int win = 0;
int deuce = 0;
int lose = 0;
do{
Scanner s = new Scanner(System.in);
System.out.println("请输入你想出的(1.石头 2.剪刀 3.布 0.退出游戏):");
int guess = s.nextInt();
if(guess ==1){
System.out.println("你选择出石头");
}else if(guess ==2){
System.out.println("你选择出剪刀");
}else if(guess == 3){
System.out.println("你选择出布");
}else if(guess == 0){
System.out.println("退出游戏");
break;
}else{
System.out.println("不存在,请重新选择");
continue;
}
//生成随机数
Random r = new Random();
//+1的目的是因为,nextInt(3)的结果会是 0,1,2 为了得到1,2,3 必须+1
int computer = r.nextInt(3)+1;
Thread.sleep(1000);
System.out.println("电脑正在思考");
Thread.sleep(1000);
if(computer == 1){
System.out.println("电脑选择出石头");
}else if(computer ==2){
System.out.println("电脑选择出剪刀");
}else{
System.out.println("电脑选择出布");
}
Thread.sleep(1000);
//玩家获胜有这三种可能:玩家出石头,电脑出剪刀;玩家出剪刀,电脑出布;玩家出布,电脑出石头
if((guess==1&&computer==2) || (guess ==2 &&computer ==3)|| (guess ==3 && computer ==1)){
System.out.println("玩家获胜");
win++;
}else if(guess==computer){
System.out.println("平局");
deuce++;
}else{
System.out.println("电脑获胜");
lose++;
}
Scanner a = new Scanner(System.in);
System.out.println("继续比赛吗? 1.继续 2.查看结果并退出");
k = a.nextInt();
if(k!=1&&k!=2){
System.out.println("违反规则输入,重新比赛");
continue;
}
}while(k!=2);
System.out.println("你总共赢了"+win+"次");
System.out.println("平局了"+deuce+"次");
System.out.println("电脑赢了"+lose+"次");
}
}