黑马程序员_函数和Scanner

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

1:函数:

   1.1 定义:函数就是定义在类中的具有特定功能的代码块。

   1.2 函数的格式:

         修饰符 返回值类型 函数名(参数列表) {

                函数体;

                return 返回值;

         }

         修饰符:目前我们接触到的就是public static。

         返回值类型:函数运行后结果的数据类型。

         参数列表:

                        实际参数:实际参与运算的变量或者值。

                        形式参数:接收实际参数的变量。

         函数体:按照逻辑完成功能的代码。

         return:用于结束函数。

         返回值:该函数运行的结果,返回给调用者。

    1.3 函数的特点:

         函数可以将代码块进行封装进行封装,以便于进行复用。

         函数只有被调用才会被执行。

   1.4 如何定义函数:

         在定义函数前必须要有两个明确:

         函数的返回值类型;

         函数的参数列表。

    1.5函数的重载:

         定义:在一个类中,出现多个函数名相同,参数列表不同的函数。

         特点:只看参数列表,与返回值类型无关。

2:Scanner:控制台输出

         Scanner使用的步骤:

         导入Scanner包:

         import java.util.Scanner;

         对Scanner进行实例化:

         Scanner sc = new Scanner();

         用Scanner接收控制台输出的数字:

         int num = sc.nextInt();

         下面是我用Scanner结合前面学习的程序流程控制结构和函数写的一个关于精彩商品价格的小程序:

/*
需求:
通过Scanner编写一个猜商品价格的小程序
在用户第一次进入时,先让用户选择要进行竞猜的商品,然后根据用户的选择进入对应
商品的竞猜系统,在用户竞猜的过程中,根据顾客输入的价格给出顾客对应的提示,直
到顾客猜对价格提用户选择退出还是继续,如果用户选择退出,那么就结束循环,程序
退出;如果用户选择继续,那么继续下一次循环。
思路:先选择需要竞猜的商品。
 输入商品的价格。
 判断价格是否正确,如果不正确,继续猜,如果正确,请用户选择是否继续,如果继续,
 再次选择要竞猜的商品,如果不继续,则退出程序。
*/
import java.util.Scanner;
class ScannerT
{
 static Scanner sc = new Scanner(System.in);  //对Scanner进行初始化

 static int p = 0;        //对商品价格进行初始化

 static boolean falg = true;      //定义一个falg,用于控制是否继续循环

 public static void main(String[] args) 
 {
  demo();          //进入价格竞猜系统

 }
 public static void demo() {      //用户选择要竞猜的商品

  System.out.println("请选择您要竞猜的商品:1(电视),2(冰箱),3(空调)4(洗衣机)"); 
  int num = sc.nextInt();
  switch (num) {        //选择商品,根据选择的商品进入该商品对应的系统

   case 1: 
    System.out.println("欢迎进入电视价格竞猜系统");
    goods1();
    break;
   case 2: 
    System.out.println("欢迎进入冰箱价格竞猜系统");
    goods2();
    break;
   case 3: 
    System.out.println("欢迎进入空调价格竞猜系统");;
    goods3();
    break;
   case 4: 
    System.out.println("欢迎进入洗衣机价格竞猜系统");
    goods4();
    break;
   default:
    System.out.println("对不起,请选择正确的商品!");
    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() {
  boolean falg1 = true;    //定义一个标记,初始值为ture,猜对时,将falg1设为false,请用户选择是否继续。

  do{
   System.out.println("请输入商品价格:");
   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:
     System.out.println("很接近了,还是有点低,请继续!");
     break;
    
    case 2:
     System.out.println("很接近了,还是有点高,请继续!");
     break;
    case 3:
     System.out.println("猜低了,请继续!");
     break;
    case 4:
     System.out.println("猜高了,请继续!");
     break;
    default:
     System.out.println("恭喜你,猜对了!");
     falg1 = false;     //将falg1置为false,请用户选择退出还是继续

     break;
   }if(falg1 == false) {
    System.out.println("0(退出),1(继续)");
    int num2 = sc.nextInt();
    if(num2 == 1) {
     demo();
    }else 
     falg = false;     //将falg设为false,不再继续下一次循环。

   }
  }while (falg);
 }
}

         这个程序中用函数将代码封装起来,提高了代码的复用性,减少了代码量。用了前面所学到的do……while循环结构控制程序,这里用到了do……while的一个特性——至少执行一次。这个小程序可以说是前几天所学的一个总结,将前边学习的内容进行了综合的运用。

 

 

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------详细请查看:<a href="http://www.itheima.com" target="blank">www.itheima.com</a>

 

转载于:https://my.oschina.net/u/1390204/blog/282807

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值