您的位置:首页 > 编程语言 > Java开发

Java基础(三)

2015-06-19 01:17 465 查看

数据类型转换

double > float > long > int > short > byte

A.小类型转大类型是自动转换(向上转型);

B.大类型转小类型会发生精度丢失,也有可能发生数据溢出,所以编译器要求我们必须强制转换,否则会有编译错误.

int i = 1 , j ;                     //正确:对于 j 这里只是定义,没有初始化.
float f1  = 0.1 ;                   //错误:在java中,有小数的数值默认为double类型,所以结果为double类型,看B解释
float f2 = 123;                     //正确: 结果为int类型,自动转换成float类型,A解释
double d1 = 2e20,d2 = 123;          //正确:A解释
byte b1 = 1,b2 = 2 ,b3 = 129;       //错误: b1,b2没有错,A解释;b3超过范围.
j = j + 10;                         //错误:只有定义 没有初始化
i= i / 10;                          //正确:
i = i * 0.1;                        //错误:i先自动转型为double,所以结果为double类型,看B解释.
char c1 = 'a',c2 = 125;             //正确:
byte b = b1 - b2;                   //错误:结果为in类型
char c = c1 + c2 -1;                //错误:结果为int类型,看B解释
float f3 = f1 + f2 ;                //正确:在f1和f2为float为前提条件下
float f4 = f1 + f2*0.1;             //错误:先是f2转换成double,然后f1转换为double,所以结果为double类型,看B解释
double d = d1*i + j;                //错误:j未初始化.
float f = (float)(d1*5 + d2);       //正确:结果为double,但是强制转换成了float,看B解释.


if 判断语句

if - else

if(判断条件) {
执行语句;
}else {
执行语句;
}


if - else if

if(判断条件){
执行语句;
}else if(判断条件) {
执行语句;
}
...
else if(判断条件) {
执行语句;
}


3.

if(判断条件){
执行语句;
}else if(判断条件) {
执行语句;
}
...
else if(判断条件) { 执行语句; }else { 执行语句; }


练习:

要求:

- 输入成绩,给出等级;

- A:100-90;

- B:89-80

- C:79-70

- D:69-60

- 不及格:小于59

- 输入 quit 退出程序;

/**
* @author     Code.Ai (Email: Code.Ai@outlook.com)
* @link       http://blog.csdn.net/codeai * @date       2015-06-18 15:16:19
* @version    $Id$
*/

import javax.swing.JOptionPane;
import java.util.regex.Matcher; //正则表达式的类
class Demo {
public static void main(String[] args) {
while(true){
String s = JOptionPane.showInputDialog(null,"请输入成绩");
//如果输入的是数字,则判断成绩;
if(s.matches("^[0-9]{1,3}$")){
int num = Integer.parseInt(s);
//System.out.println(num);
if(num >= 90 )
JOptionPane.showMessageDialog(null,"等级:A");
else if(num >= 80)
JOptionPane.showMessageDialog(null,"等级:B");
else if(num >= 70)
JOptionPane.showMessageDialog(null,"等级:C");
else if(num >= 60)
JOptionPane.showMessageDialog(null,"等级:D");
else if(num <= 59 )
JOptionPane.showMessageDialog(null,"不及格");
}
//输入quit时退出程序
else if(s.equals("quit")){
return ;
}
else
JOptionPane.showMessageDialog(null,"输入错误,请重新输入");
}
}
}


作业一

/**
* @author     Code.Ai (Email: Code.Ai@outlook.com)
* @link       http://blog.csdn.net/codeai * @date       2015-06-18 21:25:54
* @version    $Id$
*/

/*
* 输入两个数,然后弹出选择框:1.加,2.减,3.乘,4.除.然后根据选择操作符,计算结果
*  两个数可以是正负数,可以是小数
*/
import javax.swing.JOptionPane;
class Operation {
public static void Result (double number1, double number2 ,String operate) {
switch (operate){
case "1":{
JOptionPane.showMessageDialog(null,number1+" + "+number2+" = "+(number1+number2));
break;
}
case "2":{
JOptionPane.showMessageDialog(null,number1+" - "+number2+" = "+(number1-number2));
break;
}
case "3":{
JOptionPane.showMessageDialog(null,number1+" * "+number2+" = "+(number1*number2));
break;
}
case "4":{
if(number2 != 0){
JOptionPane.showMessageDialog(null,number1+" / "+number2+" = "+(number1/number2));
}else
JOptionPane.showMessageDialog(null,"被除数不能为0");
break;
}

}
}
}
class OperationTest {
public static void main(String[] args) {
while(true){
try{//try catch 语句是为了判断输入是否符合要求,如果不是一个数字,则转到catch语句
String s1 = JOptionPane.showInputDialog(null,"请输入第一个数");
String s2 = JOptionPane.showInputDialog(null,"请输入第二个数");
String s = JOptionPane.showInputDialog(null,"请选择算法:1.加法,2.减法,3.乘法,4.除法;\"quit\"退出");
if (s.equals("quit"))
return ;
//System.out.println(s);
double firstNumber = Double.parseDouble(s1);
double secondNumber = Double.parseDouble(s2);
Operation.Result(firstNumber,secondNumber,s);
}catch(Exception e){
JOptionPane.showMessageDialog(null,"输入有误,请重新输入");
}
}
}
}


作业二

/**
* @author     Code.Ai (Email: Code.Ai@outlook.com)
* @link       http://blog.csdn.net/codeai * @date       2015-06-18 22:46:04
* @version    $Id$
*/
// 键盘输入一个五位数,判断这个数是否为回文(1.它的是数字;2.是正整数;3.5位数;4.是否为回文数)
import javax.swing.JOptionPane;
class PalindromicNumber {
public static void main(String[] args) {
String s ;
int num ;
JOptionPane.showMessageDialog(null,"输入 quit 退出,回车继续");
//判断这个数是否符合要求 先判断它是不是一个数字
while(true){
s =  JOptionPane.showInputDialog(null,"请输入一个5位整数");
try {
//判断它是不是一个5位数,2种方法:1.9 <= num/10000 >= 1; 2.toCharArray.length == 5
num = Integer.parseInt(s); //这个是为了try catch语句判断是不是一个数字
if(num < 0 ){
JOptionPane.showMessageDialog(null,"请输入正整数");
continue ;
}
//System.out.println(num);
//用第二中方法判断它是不是一个5位数
char[] charArray = s.toCharArray();
System.out.println(charArray.length);
if(5 == charArray.length){
//判断是不是回文数
//for(int i = 0 ; i < charArray.length ; i++)
//  System.out.println( charArray[i] );//打印输入数组
boolean on_off = false ;
for(int j = 0 ; j < charArray.length/2 ;j++) {
if(charArray[j] == charArray[charArray.length -1 - j])
on_off = true ;
}
if (on_off)
JOptionPane.showMessageDialog(null,"是回文数");
else
JOptionPane.showMessageDialog(null,"不是回文数");
}else
JOptionPane.showMessageDialog(null,"请输入一个5位的整数");
}catch (Exception e){
if(s.equals("quit"))
return ;
JOptionPane.showMessageDialog(null,"请正确输入一个5位整数");
}
}
}
}


回文数练习

不用数组的方法打印1-100000之间所有的回文数

/**
* @author     Code.Ai (Email: Code.Ai@outlook.com
* @link       http://blog.csdn.net/codeai * @date       2015-06-19 00:09:28
* @version    $Id$
*/

class PalindromicNumber2 {
public static void main(String[] args) {
int k = 0,num;
for(int i = 0 ; i <= 1000000 ; i++){
num = i ;
while (num != 0){
//将num的数反转存储到k中
k = k*10 + num%10;
num = num/10;
//System.out.println("k= "+k+"\n"+"i = "+i+"\n");
}
if(k == i){
System.out.println(i);
}
k = 0;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: