首页 | 新闻资讯 | 软件应用 | 图形图像 | 网络应用 | 硬件学堂 | 程序开发 | 安全中心 | 素材下载 | 作者专区 | 教育频道
学院论坛 | 推荐专题 | 专家答疑 | Flash剧场 | Photoshop | 名词解释 | 梦幻桌面 | PS高手进阶 | QQ区 | 壁纸 | 黑客教材
Flash教程| 动画制作 | AutoCAD  | 3DMax专区 | PS视频教程| 网页制作 | CorelDRAW| Firework | 滤镜与实例 | 全部视频教程
学院热点专题
|21互联专区| 照片处理 | QQ 动画 | 系统优化 | 会声会影 | 制作游戏 | Win2003 | 大话成语 | MSN专题 | 头条
| 天音听听 | QQ 技巧  | ASP教程 | 菜鸟入门 | 实用工具 | ADSL宽带 | 硬盘世界| BT  下载 | Vista  | 问吧
   1991年,Sun Microsystems公司开始研究一种新的计算机语言,这种语言最后撼动了传统编程的基础。起初,这种语言被命名为Oak,到1995年正式命名为Java。Java在两个方面改变了编程的过程。第一,Java集成了有利于编制Internet程序的特性。第二,Java发展了计算机语言的精髓。因此,Java的重要性体现在两点:对Internet的内嵌支持和对计算机语言发展的推动。这两点中的任何一点都足以使Java成为一种出色的语言;但是只有将这两点成功地结合起来,Java才能成为一种伟大的语言,才能确定它在计算机历史中的地位。

回目录 |  [1]  [2]  [3]  [4]  [5] [6] [7]  | 上一章 | 下一章

 
解释器

  3.5.7 PRINT语句

  在BASIC语言中,PRINT语句不但功能强大,而且使用灵活。理论上可以编写一个完善的方法来支持PRINT语句的所有功能,但是这超出了本章的范围。因此Small BASIC中实现的PRINT方法只能够支持PRINT语句的绝大部分特性。PRINT语句的一般形式如下:

  PRINT 参数列表

  这里,参数列表是由逗号或者分号分隔的表达式,或者带引号字符串的列表。

  PRINT语句由print()方法负责解释。这里给出其详细代码:

  // Execute a simple version of the PRINT statement.
  private void print() throws InterpreterException
  {
   double result;
   int len=0, spaces;
   String lastDelim = "";
   do {
   getToken(); // get next list item 
   if(kwToken==EOL || token.equals(EOP)) break;
   if(tokType==QUOTEDSTR) { // is string
   System.out.print(token);
   len += token.length();
   getToken();
   }
   else { // is expression
   putBack();
   result = evaluate();
   getToken();
   System.out.print(result);
   // Add length of output to running total.
   Double t = new Double(result);
   len += t.toString().length(); // save length
   }
   lastDelim = token;
   // If comma, move to next tab stop.
   if(lastDelim.equals(",")) {
   // compute number of spaces to move to next tab
   spaces = 8 - (len % 8); 
   len += spaces; // add in the tabbing position
   while(spaces != 0) { 
   System.out.print(" ");
   spaces--;
   }
   }
   else if(token.equals(";")) {
   System.out.print(" ");
   len++;
   }
   else if(kwToken != EOL && !token.equals(EOP))
   handleErr(SYNTAX); 
   } while (lastDelim.equals(";") || lastDelim.equals(","));
   if(kwToken==EOL || token.equals(EOP)) {
   if(!lastDelim.equals(";") && !lastDelim.equals(","))
   System.out.println();
   }
   else handleErr(SYNTAX); 
  }

  PRINT语句可用于在屏幕上显示一组变量和引号中的字符串。如果列表中的某一项与下一项用分号隔开,那么在它们之间将输出一个空格。如果其中两项被逗号分隔,那么在第一项之后将先输出一个制表符,然后再显示第二项。即使该列表由逗号或者分号结尾,也不再开始新的一行。

  下面是一些有效的PRINT语句的实例:

  PRINT X; Y; "THIS IS A STRING"
  PRINT 10 / 4
  PRINT

  最后一个语句只是简单的换行。

  大体来说,print()方法是顺序执行的。但是请注意,print()方法使用putBack()方法向输入流返回一个标识符。这样做是因为print()方法必须前向搜索,以判断下一输出项是被引用的字符串还是数值表达式。如果是表达式,那么这个表达式的第一项必须返回输入流,只有这样表达式解析器才能够正确地计算出该表达式的值。

  3.5.8 INPUT语句

  BASIC语言使用INPUT语句从键盘读入一个数值,并将该值赋给某个变量。INPUT语句有两种一般形式。第一种形式是:

  INPUT 变量名

  系统将显示一个问号并等待用户输入。第二种形式是:

  INPUT "提示字符串",变量名

  系统将显示字符串提示信息,然后等待用户输入。在这两种情况下,用户的输入值都保存在指定的变量中。例如,对于语句:

  INPUT "Enter width: ", w

  系统将先显示“Enter width:”,然后将用户输入的数值保存在变量w中。

  input() 方法具体实现了INPUT语句的解释过程,其代码如下所示:

  // Execute a simple form of INPUT. 
  private void input() throws InterpreterException
  {
   int var;
   double val = 0.0;
   String str;
   BufferedReader br = new
   BufferedReader(new InputStreamReader(System.in));
   getToken(); // see if prompt string is present 
   if(tokType == QUOTEDSTR) {
   // if so, print it and check for comma 
   System.out.print(token);
   getToken();
   if(!token.equals(",")) handleErr(SYNTAX);
   getToken();
   }
   else System.out.print("? "); // otherwise, prompt with ?
   // get the input var 
   var = Character.toUpperCase(token.charAt(0)) - 'A';
   try {
   str = br.readLine(); // read the value
   val = Double.parseDouble(str);
   } catch (IOException exc) {
   handleErr(INPUTIOERROR);
   } catch (NumberFormatException exc) {
   /* You might want to handle this error
   differently than the other interpreter
   errors. */
   System.out.println("Invalid input.");
   }
   vars[var] = val; // store it 
  }

  由于input() 方法是顺序执行的,并且代码中标有比较详细的注释,因此阅读起来非常清晰。在此简要介绍一下操作过程。解释器先创建一个BufferedReader以读取键盘的标准输入。然后获取下一个标识符,这个标识符有两种可能:要么是提示字符串,要么是接收输入值的变量名。如果是提示字符串,那么将在在屏幕上显示,然后再次调用getToken()方法获得该字符串之后的变量名。接下来读入一个数值输入,并将其转换为doable类型最后将这个值赋给变量。

回目录 |  [1]  [2]  [3]  [4]  [5] [6] [7]  | 上一章 | 下一章

图书简介
本书目录
第一部分 Java 精 髓
· 完全集成的异常机制
· 对多态性支持的改进
· 可移植性和安全性
· 丰富的Java API
· Applet
· 继续变革
第二部分 递归下降的表达式解析器
· 表达式
· 解析表达式
· 表达式的解析
· 表达式的分解
· 表达式解析器
· 向解析器中添加变量
· 解析器中的语法检查
· 计算器Applet
· 一些尝试
第三部分 使用Java实现语言解释器
· 使用Java的原因
· 解释计算机语言
· 解释器概述
· Small BASIC解释器
· Small BASIC表达式解析器
· 解释器
· Small BASIC的使用
· 进行增强和扩展
· 创建计算机语言
热点排行(Top10)

热门关键字:手机 | 笔记本 | MP3 | 移动存储 | 数码相机 | 数码摄像机 | 显示器 | 学院 | 软件下载 | 游戏 | IT女性 | 方案库

关于eNet | 广告服务 | 我们的产品 | 使用版权 | 投稿指南 | 诚邀加盟 | 联系我们

网站合作、内容监督、商务咨询:010-65245588
对本站有任何建议、意见或投诉,请点这里在线提交
Copyright © 1998--2007 硅谷动力公司版权所有

未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
【声明】本网站部分内容属论坛网友发布,本网站仅提供网友交流平台,但有权在本网站
范围内引用、发布、转载来自论坛网友发布的内容。网友发布内容纯属个人行为,与本网
站立场无关。本网站对于论坛网友发布的内容所引发的版权、署名权的异议及纠纷,不承
担任何责任。其他媒体转载须事先与原作者和本网站联系。
京ICP证000044