初学者的Java入门第三篇来咯!一起了解Java中的输入、输出以及流程控制吧!
Scanner输入
在Java中我们使用Scanner来进行输入,当使用Scanner时,我们需要在类前面导入java.util.Scanner包。
Scanner sc=new Scanner(System.in);//创建扫描器对象sc
String str=sc.nextLine();//输入一行字符
Ststem.out.println(str);
上面语句实现了语句的输入和输出。
Scanner实际上是一个类,当我们需要输入时,应当创建一个扫描器对象并调用它的方法。Scanner的输入方法有许多,其中,我们需要区分一下next()与nextln()。
next():以第一个有效字符为开始,对于输入有效字符前的空白将自动去除,当读取到有效字符后再次读到空白时输入结束。其中,空白可以是空格也可以是回车。也就是说当使用next()输入时,字符串不会含有空格。
nextln():与next()不同的是,它将读入一行字符,中间可以有空格,当输入回车时结束。
print/printf/println输出
在java中有三个常用的输出语句,即print、printf与println。
首先让我们体会一下三者的不同:
System.out.println(1); //println输出,自动换行
System.out.println(2);
System.out.println(3);
System.out.print(1); //print直接输出
System.out.print(2);
System.out.print(3);
System.out.printf("%d",1); //printf格式化输出
System.out.printf("%d",2);
System.out.printf("%d",3);
输出结果为:
完整语句为:System.out.print();
它的特点是直接输出,不换行且参数不可为空。
println
完整语句为:System.out.println();
它的特点是每次输出后自动换行,当参数为空时相当于输出了一个换行符。
printf
完整语句为:System.out.printf();
printf是格式化输出,与C语言中的printf语句十分相似。
流程控制
Java的程序结构有顺序、选择以及循环三种,许多语句是与C语言相同的,以下只介绍一些特点或是学习得不太清楚的地方。
if条件语句中输入数据类型的判断
Scanner sc=new Scanner(System.in);
int num=0;
if(sc.hasNextInt())
{
num=sc.nextInt();
}
System.out.println(num);
上述语句利用扫描器对象sc的方法实现了当输入int类型数值时给num赋值。
跳转语句break与continue
- break语句
break语句常用于switch语句,但也可用于循环语句中用于跳出循环。
break语句用于跳出循环时需要注意的有两点,一是它只能跳出一层循环,二是break语句的位置。
对于一个双重循环:
int num=0;
for(int i=0;i<10;i++){
for(int j=0;j<10;j++)
{
num++;
}
}
System.out.println(num);//输出结果为100
(1)使用break打断外层循环:
int num=0;
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
num++;
}break;
}
System.out.println(num);//输出结果为19
(2)使用break打断内层循环:
int num=0;
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
num++;
break;
}
}
System.out.println(num);//输出结果为10
(1)与(2)虽然输出结果相同但break的作用并不同。
(1)中break打断外层循环,break语句只执行了一次。
(2)中break打断内层循环,break语句执行了十次。
- continue语句
continue用于跳转到下一次循环。特别地,对于do-while语句,continue语句将跳转至条件表达式的判断。
对于一个循环:
int num1=0,num2=0;
for(int i=0;i<10;i++)
{
num1++;
if(num2==5) continue;
num2++;
}
System.out.println(num1+" "+num2);
输出结果为:
我们可以观察到num2的值为5,这是因为当num2为5时continue语句执行,循环直接跳转到了下一次,num2++语句没有被执行。