Java日记(3)—Java基本控制结构

时间:2022-09-08 17:56:11

Java中的控制语句有以下几大类:

  1. 分支语句:if-else,switch
  2. 循环语句:while,do-while,for
  3. 跳转语句:break,continue,return
  4. 例外处理语句: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的表示非正常退出程序(结束当前正在运行的虚拟机)