java流程控制
scanner类
scanner类是一个简单的文本扫描器,可以用其对象来获取用户的输入,代码如下:
//创建一个Scanner对象来负责接收用户的输入
Scanner scanner = new Scanner(System.in);
//判断是否有下一行
if (scanner.hasNext()){
String str=scanner.next();//等待用户输入,并将用户输入赋值给str
System.out.println(str);
}
scanner.close();//涉及到IO流的都需要关闭资源,否则容易造成资源的浪费
next()和nextLine()的区别在于
- 前者是遇到空格结束,后者是遇到回车结束。
- next如果之前有空格会自动去掉,nextLine会连同空格一起获取。
scanner还可以精确到类型,如nextInt、nextFloat等,用法和上面一样。
//练习,输入多个数,求和和平均数,第个数用回车确认,输入非数字程序结束并输出结果
Scanner scanner=new Scanner(System.in);
//需要定义一个和
double sum=0;
//定义一个数量代表输入数字的个数
int num=0;
//通过while循环来获取输入
while(scanner.hasNextDouble()){
double input=scanner.nextDouble();//等待用户输入
sum+=input;//sum=sum+input
num++;
System.out.println("输入的是第"+num+"个数,目前的和为"+sum);
}
System.out.println("总共输入"+num+"个数,总和为"+sum+",平均数为"+sum/(double)num);
scanner.close();
顺序结构
java的基本结构就是顺序结构,除非特别指明,否则就是按顺序一步步执行。,顺序结构是任何一个算法都离不开的一种基本算法结构
选择结构
if单选择结构:一个if语句,无else
if双选择结构:if...else...,有两个选择可走
if多选择结构:if...else if...else if.....else,有多个选择可走
if的嵌套:在if里面加if
switch多选择结构,从java7开始,可以支持字符串类型了,本质是后台匹配的Hashcode(要注意break,不加break会”穿透“):
switch(){
case xxx:
xxxx;
break;
...
deflaut xxx:
}
反编译,将class从文件夹的层面copy到项目目录中,可以在IDEA中直接打开
循环结构
循环条件一直为true,会陷入死循环
while:最基本的循环结构
do ...while:和while相似,不过至少会执行一次
for:最灵活,最有效的,执行次数在执行前就已经确定了,也可以是空语句(表示死循环)
增强for循环
JDK5新增,主要为了方便数组和集合的遍历,一种语法糖。
int[] numbers={10,20,30,40};
for (int x :
numbers) {
System.out.println(x);
}
break和continue
break用于强制退出循环
continue用于退出此次循环,继续执行下次循环
标签语法用于跳转(基本不用),java中没有goto
//求101-200的质数
out: for (int i=101;i<=200;i++){//定义一个out标签
for (int j=2;j<i/2;j++){
if (i%j==0)
continue out;//跳转到out标签
}
System.out.println(i);
}
本文来自博客园,作者:一只快乐的小67,转载请注明原文链接:https://www.cnblogs.com/sp520/p/15240745.html