package com.itheima;
import java.util.Scanner;
/*
需求:
通过Scanner编写一个猜商品价格的小程序
思路:先选择需要竞猜的商品。
输入商品的价格。
判断价格是否正确,如果不正确,继续猜,如果正确,请用户选择是否继续,如果继续,
再次选择要竞猜的商品,如果不继续,则退出程序。
*/
class TestDemo
{
public static void main(String[] args)
{
demo();
}
static Scanner sc = new Scanner(System.in);//对Scanner进行初始化
static int p = 0; //对商品价格进行初始化
static boolean falg = true; //定义一个falg,用于控制是否继续循环
public static void sop(Object obj) {
System.out.println(obj);
}
public static void demo() {
sop("请选择您要竞猜的商品:1(电视),2(冰箱),3(空调)4(洗衣机)");
int num = sc.nextInt();
switch (num) { //选择商品,根据选择的商品进入该商品对应的系统
case 1:
sop("欢迎进入电视价格竞猜系统");
goods1();
break;
case 2:
sop("欢迎进入冰箱价格竞猜系统");
goods2();
break;
case 3:
sop("欢迎进入空调价格竞猜系统");;
goods3();
break;
case 4:
sop("欢迎进入洗衣机价格竞猜系统");
goods4();
break;
default:
sop("对不起,请选择正确的商品!");
demo(); //如果选择的商品不在备选列表,重新进入选择商品的系统进行选择
break;
}
}
public static void goods1() {
p = 3000; //确定商品的价格并调用猜价系统
demo1();
}
public static void goods2() {
p = 2000;
demo1();
}
public static void goods3() {
p = 3500;
demo1();
}
public static void goods4() {
p = 1500;
demo1();
}
public static void demo1() {
do{
sop("请输入商品价格:");
int num = sc.nextInt();
int op = 0;
if(num >= (p - 100) & num < p){
op = 1;
}else if(num <= (p + 100) & num > p) {
op = 2;
}else if(num < (p - 100)) {
op = 3;
}else if(num > (p + 100)) {
op = 4;
}
switch(op)
{
case 1:
sop("很接近了,还是有点低,请继续!");
break;
case 2:
sop("很接近了,还是有点高,请继续!");
break;
case 3:
sop("猜低了,请继续!");
break;
case 4:
sop("猜高了,请继续!");
break;
default:
sop("恭喜你,猜对了!");
falg = false; //将falg置为false
break;
}if(falg == false) {
sop("0(退出),1(继续)");
int num2 = sc.nextInt();
if(num2 == 1) {
falg = true;
//你一次竞价结束后,falg值为flase,所以在继续进行并调动demo后,switch之后完成后会进行if判断,
//此时值为falg为false,所以会提示退出,所以在选择1后要把falg重置为true;
demo();
}else
break;
}
}while (falg);
}
}
红色字体为需要改动部分,及分析原因,希望能帮到你
|