JAVA流程控制
用户交互Scanner
-
Scanner 类来获取用户的输入
-
基本语法
Scanner scanner=new Scanner(System.in);
- 通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取之前我们一般需要使用hasNext()与hasNetxLine()判断是否还有输入的数据。
- next不能得到带有空格的字符串。
- nextLine已回车为结束符,可以得到带有空格的字符串。
- 代码示例
package scanner;
import java.util.Scanner;
public class demo05 {
public static void main(String[] args) {
//我们可以输入多个数字,并求其总数,个数,平均值
Scanner scanner=new Scanner(System.in);
double sum=0;
int num=0;
while(scanner.hasNextDouble())
{
double x=scanner.nextDouble();
sum+=x;
num++;
}
System.out.println("sum="+sum);
System.out.println("num="+num);
System.out.println("end="+(sum/num));
scanner.close();
}
}
顺序结构
- 代码按从上到下顺序执行,很简单。
选择结构
if单选结构
if双选结构
嵌套的if结构
switch选择结构
循环结构
while循环
package struct;
public class WhileDemo01 {
public static void main(String[] args) {
//计算1+2+3+...100=
int i=1;
int sum=0;
while(i<=100)
{
sum=sum+i;
i++;
}
System.out.println(sum);
}
}
do…while循环
- 至少执行一次
for循环★
for(初始化;布尔表达式;迭代)
-
println 输出完会换行
-
print输出完不会换行
-
加强for循环
//格式
for(声明语句:表达式)
{
}
//代码示例
public class ForDemo02 {
public static void main(String[] args) {
int []num={10,20,30,40,50,60,70,80,90};
for(int x:num)
{
System.out.println(x);
}
}
}
//输出结果
10
20
30
40
50
60
70
80
90
break continue
- 在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。
- continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否循环的判定。
练习
- 打印一个三角形
package struct;
public class ForDemo02 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j=5; j >=i; j--) {
System.out.print(" ");
}
for (int j=1;j<=i;j++) {
System.out.print("*");
}
for (int j=1;j< i;j++) {
System.out.print("*");
}
System.out.println();
}
}
}
*
***
*****
*******
*********