往期:
JAVA 修炼秘籍第一章:《痛苦的折磨》
JAVA 修炼秘籍第二章:《逐渐魔化》
第三章目录
一、JAVA中如何从键盘读入数据
平时写代码的时候总是一个案例一个案例的来测试代码程序,是一种很慢的行为,如果每次运行我们可以想测试什么就输入什么是不是更好一些呢,并且我测试完第一个案例还想继续测试下一个应该怎么来实现呢?保留问题我们看完下面的代码。
假设我想测试一段两个数相加之和的代码。
import java.util.Scanner;(1)
public class prog{
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);(2)
int a=0;
int b=0;
while(scan.hasNext()){(3)
a=scan.nextInt(); (4)
b=scan.nextInt(); (5)
System.out.println("a+b="+(a+b));
}
}
}
运行结果如下:
注释:(对应代码中标出序号的位置)
1.调用包,类似C语言中的include,否则后续无法运行
2.创建Scanner对象。(System.in)为键盘输入
3.判断是否有输入。
4.nextInt()接收整形,如果是别的类型,后面就是对应写上别的类型的包装类名。
5.与4相同。
二、语句
在生活中,我们总是会面临一些选择或抉择或一些循环,比如吃饭睡觉打豆豆,这些日复一日的事情,在代码中也是如此,让我们可以更容易的表达思想。
1.if分支语句
接下来介绍”if“语句,它是什么作用呢,比如说你问食堂大妈,今天有溜肉段吗,大妈告诉你:小伙子有溜肉段。这时候你就会继续后面的事情吃上溜肉段,如果大妈说:小伙子溜肉段没了。那这个时候你的后面吃溜肉段的环节就无法继续进行下去了。
接下来我们来看在程序中是如何来判断是否有溜肉段的。
代码部分:
public static void main(String[] args) {
int a=10;
if(a==10){(1)
System.out.println("小伙子溜肉段来了");(2)
}
}
注释部分:
1.判断a是否等于10,如果等于:进入“if”预计的代码块执行(2),反之不等于,跳过此“if”语句代码块
2.“if”语句中的执行语句.
注意:在JAVA中的if,else if,else 语句都是只能判断boolean类型的。
2.else if、else分支语句
"else"语句理解为,如果“if”语句判断不成立,执行“else”语句。
代码部分:
public class prog {
public static void main(String[] args) {
int a=5;
if(a==10){(1)
System.out.println("小伙子溜肉段来了");
}
else if(a==5){(2)
System.out.println("小伙子,你自己看看");
}
else{(3)
System.out.println("没有溜肉段了");
}
}
}
注释部分:
1.判断“if”语句是否成立,如果成立就执行。如果不成立跳过下面代码块执行“else if”语句,
2.判断else if语句是否成立,如果成立就执行,如果不成立跳过下面代码块,执行else语句。
2.else语句无需判断。
注意:在JAVA中的if,else if,else 语句都是只能判断结果为boolean类型的。
3.for循环语句
我们在前面说到,在生活中,我们也会有每天重复循环做的事情,接下来我们就看看代码中是如何实现循环程序的。
代码如下:
public static void main(String[] args) {
for(int i=0;i<10;i++){(1)
System.out.print(i+" ");
}
}
运行结果:
注释部分:
1.在第一个’ ;‘分号前面的int i=0这是for循环语句只执行一次的赋值语句 在第二个’ ;‘分号前面的i<10这是for循环的判断语句,如果判断成立,执行下面代码块,如果不成立,则跳过for语句, 在第二个’
;‘分号后面的语句来进行递增或者递减的接近终止条件,如果离终止条件越来越远,程序就会死循环后崩溃,
for语句的执行过程就是1.赋值-》2.判断(成功)-》3.执行代码块-》4.递增或递减-》再次判断(重复2.3.4直到2判断失败)。
注意:在JAVA中的while 语句是只能判断结果为boolean类型的。
4.while循环语句
while循环语句可以变化写成for循环语句,for循环语句也可以写成while循环语句,他们两个都差不多,只是程序的执行过程不同而已,如果能理解for循环语句,那么while循环语句也很好理解。
代码如下:
public static void main(String[] args) {
int i=0;
while(i<10){ (1)
System.out.print(i+" ");
i++;(2)
}
}
注释部分:
在while循环后面的()中的是判断语句(注意:在JAVA中的while
语句是只能判断结果为boolean类型的),如果判断为true那么执行下面代码块,反之跳过代码块,加入判断为true后执行下面代码块,每次执行完代码块里的内容后再次判断。之到为false结束。
5.do while循环语句
do while循环是最少执行一次的循环,前面的两个循环都是先判断再执行,而do
while循环是先执行再判断,所以格式也略有差别,用的也比较少。
代码如下:
public static void main(String[] args) {
int i=0;
do{(1)
System.out.print(i+" ");
i++;(2)
}while(i<10);(3)
}
注释部分:
(1)的部分是直接进入代码块无需判断,执行完语句后,在(3)的位置进行判断 (注意:在JAVA中的do
while语句是只能判断结果为boolean类型的),结果为true再次循环执行,如果为false则结束循环。
6.switch分支语句
这个分支语句有些特别,但是很好理解先看后理解。
代码如下:
public static void main(String[] args) {
int a=3;
switch(a){(1)
case 1:(2)
System.out.print("a");
case 2:(3)
System.out.print("b");
case 3:(4)
System.out.print("c");
case 4:(5)
System.out.print("d");
case 5:(6)
System.out.print("e");
default:(7)
System.out.print("*");
}
}
注释部分:
(1)的部分为判断部分,判断成功,进入代码块,进入代码块后,可以看到a=3;那么就执行(4)的case
3:的代码,如果中间没有break或continue则继续按顺序向下执行,如果a不等于(2)~(6)中任何一个,那么就执行default。
7.break终止,continue跳过
上面的switch语句中出现了break与continue,他们两个的作用不仅仅是用于switch语句中,for,while,do
while,语句中同样可以的。break可以直接跳出当前的循环语句,continue则是跳过此次循环接下来的代码,很神奇。
break代码如下:
public static void main(String[] args) {
for(int i=0;i<10;i++){
System.out.print(i+" ");
if(i==5) {
break;
}
}
}
注释部分:
当我们循环到i==5时if语句判断成功,程序遇到break直接跳出循环,此时这个程序就结束了。
continue代码如下:
public static void main(String[] args) {
for(int i=0;i<10;i++){
if(i==5) {
continue;
}
System.out.print(i+" ");
}
}
注释部分:
那么此时的代码输出结果就是0,1,2,3,4,6,7,8,9,我们可以看到少了个5这就是因为,在循环中i为5时if判断成立,此时遇到了continue那么此次循环接下来的语句全部跳过,进入下此次循环,所以打印5的时候就被跳过了。
三、生成随机数
最后一个知识点,生成随机数,随机数的生成,在以后的代码程序中需要灵活运用。
代码如下:
import java.util.Random;(1)
public class prog {
public static void main(String[] args) {
Random random=new Random();(2)
int rannum=random.nextInt(100);(3)
}
}
注释部分: (1)的位置,是包的引用,否则后续代码会报错无法进行。
(2)的位置是创建Random的对象,在后面的Random();括号内如果给定数字,随机数就不会随机生成,这里也就是随机种子。
(3)nextInt为生成整形随机数,这里知识点与Scanner相同,后面(100)是范围,所以这里生成的随机数都是在0~100之间。
本章结束~谢谢。