10. 2.1.2常量与变量声明变量的格式为:数据类型 变量名1,变量名2,… ;
例如:
int a;
int x, y, sum;
在Java中,常量的声明与变量的声明非常类似,例如:
final int DAY = 24; // DAY的值在整个程序中不变,
final double PI = 3.14159; //声明圆周率常数
12. 2.1.3 变量赋值例如:
int x = 5; // 指定x为整型变量,并赋初值5
char c = ‘a’; //指定a为字符型变量,并赋初值 ‘a‘
如果同时对多个相同类型的变量赋值,可以用逗号分隔,如:
int x = 5,y = 8,sum;
sum = x + y; //将x+y的运算结果赋值给变量sum
在Java语言中,经常会用到形如“x = x + a”的赋值运算,如:
int x = 5;
x = x + 2;
这里,右边x的值是5,加2后,把运算结果7赋值给左边的变量x,所以x的值是7。
14. 北京传智播客教育 www.itcast.cn常量与变量自动类型提升
byte b = 3;
int x = 4;
x = x + b;//b会自动提升为int类型进行运算。
强制类型转换
byte b = 3;
b = b + 4;//报错
b = (byte)b+4;//强制类型转换,强制将b+4的结果转换为byte类型,再赋值给b。
思考:
byte b1=3,b2=4,b;
b=b1+b2; //报错
b=3+4;
哪句是编译失败的呢?为什么呢?
byte b=(byte) (b1+1); //报错
int 运算的最小类型
48. 自增/自减运算符为+ +和- -。+ +完成自加1;而- -完成自减1。
例如:
(1)int x = 2;
int y = (++x) * 5; //执行结果:x = 3, y = 15
(2)int x = 2;
int y = (x++) * 5; //执行结果:x = 3, y = 10
49. 【例2-6】用关系运算符比较三个整数。public class Example2_6
{
public static void main(String[] args)
{
//定义若干整型数
int i=37;
int j=42;
int k=42;
System.out.println("变量数值: ");
System.out.println("i="+i+"\t j="+j+"\t k="+k);
//大于
System.out.println("大于:");
System.out.println("i>j="+(i>j));//false
System.out.println("j>i="+(j>i));//true
System.out.println("k>j="+(k>j));//false
//大于等于
System.out.println("大于等于:");
System.out.println("i>=j="+(i>=j));//false
System.out.println("j>=i="+(j>=i));//true
System.out.println("k>=j="+(k>=j));//true
51. public class Ex2_61 {
public static void main(String[] args) {
int i=37;
int j=42;
System.out.println((i>j)&&(11/0>9));//短路
System.out.println();
//System.out.println((j>i)&&(11/0>9));//非短路
System.out.println((i>j)&(11/0>9));//非短路
}
}
52. public class Ex2_62 {
public static void main(String[] args) {
int i=37;
int j=42;
System.out.println((j>i)||(11/0>9));//短路
System.out.println();
//System.out.println((i>j)||(11/0>9));//非短路
System.out.println((j>i)|(11/0>9));//非短路
}
}
58. 2.4.2 键盘输入语句在java中,使用简单文本扫描器Scanner类可以接受用户从键盘输入的数据。Scanner可以从System.in中读取数据。Scanner实现键盘输入数据的方法如下:
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
double b = sc.nextDouble();
String str = sc.next();
59. 【例2-7】从键盘输入数据。 import java.util.*;
public class Example2_7
{
public static void main(String args[])
{
Scanner reader=new Scanner(System.in);
System.out.print("输入一个整数:");
int a = reader.nextInt();
System.out.print("输入一个实数:");
double b = reader.nextDouble();
System.out.println(a+b);
System.out.print("输入一串字符:");
String s = reader.next();
System.out.println(s);
}
}
61. 【例2-8】交换两个变量的值。 在编写程序时,有时需要把两个变量的值互换,交换值的运算需要用到一个中间变量。例如,要将a与b 的值互换,就可用下面这样一段程序: int a, b, temp;
temp = a;
a = b;
b = temp;设temp为中间变量第一步:把a的值放到中间变量temp中第二步:把b的值放到变量a中第三步:把temp中原a的值放到变量b中
62. 交换过程如图所示:
63. 1 /* 交换a、b两变量的值 */
2 import javax.swing.*;
3 public class Example2_8
4 {
5 public static void main(String args[])
6 {
7 int a = 3, b = 5, temp;
8 temp = a;
9 a = b;
10 b = temp;
JOptionPane.showMessageDialog(null,
"a = " + a + "\t b =" + b );
12 System.exit(0);
13 }
14 }交换a、b两变量的值
99. /* while循环 */
import javax.swing.JOptionPane;
public class Example2_17
{
public static void main(String[] args)
{
int x=1, i=1;
while(i<=9)
{
x=(x+1)*2;
i++;
}
JOptionPane.showMessageDialog(null,"x = " + x);
System.exit(0); //退出程序
}
}
100. (2)do-while语句
do-while语句的语法结构为: do
{
…循环体;
} while(循环条件表达式);
do-while语句与while语句的区别在于,语句先执行循环中的语句再计算条件表达式,所以do-while语句的循环体至少被执行一次。
101. 【例2-18】 计算 1! + 2! + 3! + …… + 10! import javax.swing.JOptionPane;
public class Example2_18
{
public static void main(String[] args)
{
int sum = 0, i = 1, p = 1;
do {
p = p * i;
sum = sum + p;
i++;
} while(i<=10);