Day05 Java基础--流程控制
Day05 Java流程控制
1. Scanner对象
-
基本语法:
Scanner s = new SCanner(Sys.in); -
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取钱我们一般使用hasNext()与hasNextLine()判断是否好友输出的数据。
-
next()
- 1.一定要读取到有效字符后才可以结束输入。
- 2.对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
- 3.只有输入有效字符后才将其后面输入的空白作呕为凤戈夫或结束符。
- 4.next()不能得到带有空格的字符串
-
nexyLine()
- 1.以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
- 2.可以获得空白。
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数据:");
//判断用户有没有输入字符串
String str = scanner.nextLine(); //程序会等待用户输入
System.out.println("输出的内容为:"+str);
//凡是属于IO流的类如果不关闭会一直占用资源,要养成良好的习惯用完就关闭
scanner.close();
实践题:我们可以输入多个数字,并求其综合与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出结果
Scanner scanner = new Scanner(System.in);
//和
double sum= 0;
//计算输入了多少个数字
int m = 0;
//通过循环判断是否还有输入,并在里面对每一次进行求和和统计
while(scanner.hasNextDouble()){
double x = scanner.nextDouble();
m = m+1; //m++
sum = sum + x;
System.out.println("你输入了第"+m+"个数据,当前结果为"+sum);
}
System.out.println(m+"个数的和为"+sum);
System.out.println(m+"个数的平均值是"+(sum /m));
scanner.close();
2. 顺序结构
-
JAVA的基本结构就是顺序结构,按顺序执行。
-
顺序结构是最简单的算法结构。

-
语句与语句之间,框与框之间按从上到下的顺序进行的,他是有若干个依次执行的处理步骤组成的,他是任何一个算法都离不开的一种基本结构。
3. 选择结构
- if单选择结构
- if双选择结构
- if多选择结构
- 嵌套的if结构
- switch多选择结构
if单选择结构
-
我们很多时候需要去判单一个东西是可行,然后我们才执行。这样的一个过程在程序中用if语句来表示
-
语法:
if(布尔表达式){ //如果布尔表达式为true将执行的语句 }
if双选择结构
-
语法
if(布尔表达式){ //如果布尔表达式为true将执行的语句 }else { //如果布尔表达式不为true将执行的语句 }
if多选择结构
-
语法
if(布尔表达式1){ //如果布尔表达式为true将执行的语句 }else if(布尔表达式2){ //如果布尔表达式为true将执行的语句 }else if(布尔表达式3){ //如果布尔表达式为true将执行的语句 }else { //如果以上布尔表达式都不为true将执行的语句 }
嵌套的if结构
-
所有的逻辑结构都可以相互嵌套
-
语法:
if(布尔表达式1){ //如果布尔表达式1为true将执行的语句 if(布尔表达式2){ //如果布尔表达式2为true将执行的语句 } }
Switch多项选择结构
-
多选择结构还有一个实方式就是switch case 语句
-
switch case 语句判断一个变量与一系列值中的某个值是狗相等,每个值称为一个分支
-
switch 语句中的变量类型可以是:
- byte, short, int, char
- 从JavaSE 7 开始
- switch 支持字符串 String 类型
- 同时case 标签必须为字符串常量或字面量.
-
语法:
switch(expression){ case value: //语句 break; //可选 case value: //语句 break; //可选 //你可以有任何数量的case语句 default://可选 //语句 }
4. 循环结构
- while 循环
- do...while 循环
- for 循环
- 在Java5中引入了一种用于数组的增强型for 循环
while循环
-
while 是最基本的循环:
while(布尔表达式){ //循环结构 } -
只要布尔表达式为true,循环就会一直执行下去
-
我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。
-
少部分情况循环会一直执行,比如服务器的请求响应监听等
-
我们应该尽量避免死循环的出现
int i = 0; int sum = 0; while (i <= 100){ sum = sum + i; i++; } System.out.println(sum);
do...while 循环
-
对于while 语句而言,如果不满足条件,则不能进入循环。但是有时候我们需要及时不满足条件,也至少执行一次。
-
do...while 循环和 while 循环相似,不同的是,do...while循环至少会执行一次。
do{ //代码语句 }while(布尔表达式) -
while 和do...while的区别
- while 先判断后执行。do..while 是先执行后判断
- do..while 总是保证循环体见被至少执行一次!
int i = 0; int sum = 0; do{ sum = sum + i; i++; }while(i <= 100); System.out.println(sum);
for 循环
-
虽然所有循环都可以用while或者do...while 表示,但是for循环可以让结构变得更加简单。
-
for循环语句是支持迭代的一种通用结构,是最有效|最灵活的循环结构。
-
for循环的执行此时实在执行前就确定的。格式如下:
for(初始化;布尔表达式;更新){ //代码语句 } -
练习1:计算0到100直接技术和偶数的和
//练习1:计算0到100直接技术和偶数的和 int oddSum = 0; int evenSum = 0; for (int i = 0; i <= 100; i++) { if(i % 2 != 0 ){ oddSum+=i; }else { evenSum+=i; } } System.out.println("奇数的和:"+oddSum); System.out.println("偶数的和:"+evenSum); -
练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出三个
//练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出三个 for (int i = 0; i < 1000; i++) { if (i%5 == 0){ System.out.print(i + "\t"); } if (i%(5*3)==0){//每行 System.out.println(); // System.out.print("\n"); } } //println 输出换行 //print 输出不换行 -
练习3:打印九九乘法表
//练习3:打印九九乘法表 //1.我哦们先打印第一列 //2.把固定的1再用一个循环包起来 //3.去掉重复项, j <= i for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System.out.print(j+"*"+i+"="+(i*j)+"\t"); } System.out.println(); }
增强for循环
-
数组重点使用
-
Java5 引入了一种用于数组或集合的增强型for 循环
-
语法:
for(声明语句 : 表达式){ //代码句子 } -
声明语句:声明心得局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时的数组元素的值相等。
-
表达式:表达式是要访问的数组名,或者返回值为数组的方法。
break continue
- break在任何循环语句的主题部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)
- continue 语句用循环语句体中,用于中止某次循环过程,即跳过循环体中尚未执行的语接着进行下一次是否执行循环的判断
例题:打印一个三角形
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();
}
结果:


浙公网安备 33010602011771号