Java中的控制语句有以下几大类:
- 分支语句:if-else,switch
- 循环语句:while,do-while,for
- 跳转语句:break,continue,return
- 例外处理语句:try-catch-finally,throw(本节不讲)
控制语句用法和c/c++一样,没有区别,下面介绍在练习的过程中用到的Java内置的一些东东.
1.分支语句:
代码一:
import java.util.Scanner; //A行
public class Example_4_1 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in); //B行
System.out.print("请输入成绩:");
int score = sc.nextInt(); //C行
if(score >= 0 && score <= 100)
{
System.out.println("成绩:"+score);
}
sc.close(); //D行
}
}
说明:
- A行: import java.util.Scanner;
java.util.Scanner是Java5的新特性,主要功能是简化文本扫描,获取控制台输入
java是包名,util是java包里面的一个子包,Scanner表示util包里面的一个类,import是导入包中的类的意思,若是带”*”表示导入该包中的所有类。
Java程序中,除了java.long包中的所有的类是java环境中自动导入的,其他的都需要用import声明。
- B行: 创建一个Scanner类的对象,并且将对象System.in的作为实参去调用相关的构造函数(该Scanner对象可以根据in对象实现允许输入的功能)
- C行:
Scanner类的一些方法(函数):
next():每次取到一个间隔符前面的数据,如:输入Hello World取值是Hello,应为空格为一个间隔符
nextLine():每次取到一个换行符(/n)前面的数据,如:输入Hello World取值就是Hello World。
nextInt():取next()函数的数据(字符串),然后把字符串解析成一个int数字(同理还有nextLong(),nextShort()方法)
hasNexInt():判断下次调用next()是否可以得到一个可以安全解析成int的字符串。如果已经到达输入的结尾,或者下一个next()的返回值不能解析为一个数字,即不符合数字的格式,那么返回false(可以作为if语句的条件,然后再使用nextInt()函数。)
- D行:
凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉,就好像你接完水后要关了水龙头一样
输入流,不关闭,会占用资源
输出流,不关闭,可能会造成最后一部分数据丢失
延伸阅读:其他方法获取控制台输入:http://blog.csdn.net/yiyiwudian/article/details/46522415
代码二:
import java.util.Scanner;
public class Example_4_3 {
public static void main(String[] args) {
//产生一个1~4之间的随机整数
int random = 1+ (int)(Math.random()*4);// A行
switch(random)
{
case 1:
System.out.println("I feel fine");break;
case 2:
System.out.println("I've been better");break;
case 3:
System.out.println("I feel horrible");break;
case 4:
System.out.println("I feel terrific");break;
}
}
}
说明:
A行:Math.random() 函数返回一个区间为[0.0,1.0),在该范围内随机的一个double类型的数;
然通过强制类型转换转成整数类型的,即1~4
延伸阅读:Random()函数的详解与其他用法:http://www.cnblogs.com/ningvsban/p/3590722.html
###2.循环语句: 代码一:
public class Example_4_7 {
public static void main(String[] args) {
int sum=0;
int []a = {13,25,78,12}; //A行
for(int i=0;i<a.length;i++) //B行
{
sum+=a[i];
}
System.out.println(sum);
}
}
说明:
- A行:
声明数组的方式:int[] a(也可以 int a[],但是前种可读性比较好,java推荐使用前一种)
注:java声明数组时不能指定数组大小,即不能写 int[4] a;
代码二:
public class Example_4_8 {
public static void main(String[] args) {
int sum=0;
int[] a={13,25,78,12};
for(int i:a){ //A行
sum+=i;
}
System.out.printl sum);
}
}
说明:
A行:
JDK1.5对for语句的功能进行了扩充,可以使用for-each循环更好的遍历数组和容器对象。for-each循环语句的语法格式如下(注意与PHP很不一样,别搞混了):
for(变量类型 变量名:数组/容器)<br />
{
循环结构体
}
3.综合应用:
import java.awt.*; //A行
import javax.swing.JOptionPane; //B行
public class Example_4_yingyong_answer {
public static void main(String[] args) {
int number;//用户输入的4位数
int []digit;
int encryptedNumber;//加密后的数字
digit=new int[4];
//输入一个四位数,保存在变量number中
String inputNumber = JOptionPane.showInputDialog("Enter a four digit number:"); //C行
number = Integer.parseInt(inputNumber);//D行
//加密
//编写代码,对4位数中的每一位数按照问题描述的方式进行加密运算
for(int i=0;i < inputNumber.length();i++)
{
digit[i]=Integer.parseInt(inputNumber.substring(i,i+1)); //E行
digit[i]=(digit[i]+7)%10;
}
//编写代码,交换第一个数和第三个数,第二个数和第四个数,生成加密后的数字
encryptedNumber = Integer.parseInt((Integer.toString(digit[2])+Integer.toString(digit[3])+Integer.toString(digit[0])+Integer.toString(digit[1]))); //F行
//编写代码,用消息对话框显示加密的结果
JOptionPane.showMessageDialog(null, number+"加密之后是:"+encryptedNumber,"密文:",JOptionPane.INFORMATION_MESSAGE); //G行
System.exit(0); //H行
}
//结束main方法
}
//结束Example_4_yingyong_answer类
说明:
- A行:
java.awt.*:导入java包中的awt子包中的所有类
awt包,即java抽象窗口工具包(Abstract Window Toolkit,AWT)提供了许多用来设计GUI(Graphics User Interface,图形用户界面)组件类。java早期进行用户界面 设计时,主要用java.awt包提供的类,如Button(按钮),TextField(文本框)和List(列表)等,JDK1.2推出后,增加了一个新的javax.swing包,该包提供了功能更为强大的用来设计GUI的类。
- B行:
javax.swing.JOptionPane:导入javax包中的swing子包中的JOptionPane类
JOptionPane是有助于方便地弹出要求用户提供值或向其发出通知的标准对话框。它是用来编写图形用户界面的一个类
- C行:
JOptionPane.showInputDialog(“Enter a four digit number:”):调用JOptionPane.showInputDialog()函数,参数为一个字符串
JOptionPane.showInputDialog()函数,用户输入框,(类似HTML中的<input type=”text”>)。 详细用法
- D行:
Integer.parseInt(String):integer是int的包装类,parseInt(String)方法就是将参数String转换为int类型,遇到一些不能被转换为整型的字符时,会抛出异常。
- E行:
String对象的substring(int beginIndex,int endIndex)方法:截取字符串函数。返回截取后的子字符串,该字符串从制定的beginIndex开始,到endIndex-1结束,字符串长度是endIndex-beginIndex(注意字符串是从0开始算的)
也可以省略参数endIndex,表示截取从beginIndex开始到结尾的字符串- F行:
integer.toString(int Number,int type)函数,将int型Number转换成字符串类型;type可以省略,表示要转换成的进制表示(2进制,10进制,16进制,32进制)
- G行:
showMessageDialog()方法:消息提示框,(类似js中的alert) 详细用法
- H行:
System.exit(0)表示正常退出程序,非0的表示非正常退出程序(结束当前正在运行的虚拟机)