java入门09--循环与分支
Posted acrifhy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java入门09--循环与分支相关的知识,希望对你有一定的参考价值。
java入门09
顺序结构
语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的。
选择结构
- if单选择结构
语法:
if(布尔表达式)
//如果布尔表达式为true将执行的语句
- if双选择结构
语法:
if(布尔表达式)
//如果布尔表达式的值为true
else
//如果布尔表达式的值为false
例如:
package structure;
import java.util.Scanner;
public class Demo02
public static void main(String[] args)
//判断输入的成绩是否及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
int score = scanner.nextInt();
if (score>60)
System.out.println("及格");
else
System.out.println("不及格");
scanner.close();
- if多选择结构
语法:
if(布尔表达式1)
//如果布尔表达式 1的值为true执行代码
else if(布尔表达式2)
//如果布尔表达式 2的值为true执行代码
else if(布尔表达式3)
//如果布尔表达式 3的值为true执行代码
else
//如果以上布尔表达式都不为true执行代码
一个满足,整个程序结束
例如:
if (score<60)
System.out.println("E");
else if (score>=60 && score<70)
System.out.println("D");
else if (score>=70 && score<80)
System.out.println("C");
else if (score>=80 && score<90)
System.out.println("B");
else System.out.println("A");
- 嵌套的if结构
语法:
if(布尔表达式)
//如果布尔表达式1的值为true执行代码
if(布尔表达式2)
//如果布尔表达式2的值为true执行代码
switch多选择结构
-
多选择结构switch case
-
switch case语句判断一个变量与一系列值中的某个值是否相等,每个值为一个分支
-
switch语句中的变量类型可以是:
- byte、short、int或者char
- 从java SE 7开始
- switch支持字符串String类型了
- 同时case标签必须为字符串常量或字面量
switch(expression)
case value:
//语句
break;//可选
case value:
//语句
break;//可选
//可以有任意数量的case语句
default://可选
//语句
case穿透现象:如果没有break,则会执行后面所有语句
switch示例:
package structure;
import java.util.Scanner;
public class Demo03
public static void main(String[] args)
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
int grade = scanner.nextInt();
switch (grade)
case 100:
System.out.println("优秀");break;
case 90:
System.out.println("良好");break;
case 80:
System.out.println("中等");break;
case 70:
System.out.println("及格");break;
case 60:
System.out.println("挂科");break;
default:
System.out.println("未知等级");
反编译 java—class(字节码文件)—反编译(IDEA):
在项目结构中,我们找到class文件:
然后在文件夹中打开java文件,把class文件拖过去:
对照java文件与其class文件,可知程序在字节码里是怎样真正运行的:
循环结构
- while循环
- do…while循环
- for循环
- 在java5中引入了一种主要用于数组的增强型for循环
while循环
while(布尔表达式)
//循环内容
- 只要布尔表达式为true,循环就会一直执行
用法示例:
package structure;
public class Demo04
public static void main(String[] args)
int i = 0;
while (i<100)
i++;
System.out.println(i);
会输出1~100
1~100求和:
package structure;
public class Demo04
public static void main(String[] args)
int i = 0;
int sum = 0;
while (i<100)
i++;
sum+=i;
System.out.println(sum);
do…while循环
- 对于while,如果不满足条件,则不能进入循环。
- 对于do…while,即使条件不满足,至少执行一次
do
//代码
while(布尔表达式);
for循环
for(初始化;布尔表达式;更新)
//代码语句
简化1~100求和:
package structure;
public class Demo04
public static void main(String[] args)
int i;
int sum = 0;
for (i=1;i<=100;i++)
sum+=i;
System.out.println(sum);
像for(int i=1;i<100;i++)这种语句可以用快捷键100.for生成
分号中的值可以去掉,具体与C语言类似
计算0到100之间奇数与偶数的和:
package structure;
public class Demo04
public static void main(String[] args)
int oddsum = 0;
int evensum = 0;
for (int i = 0; i <= 100; i++)
if (i%2==0)
evensum+=i;
else
oddsum+=i;
System.out.println("奇数的和:"+oddsum);
System.out.println("偶数的和:"+evensum);
输出1~1000之间能被5整除的数,每行输出3个
package structure;
public class Demo04
public static void main(String[] args)
for (int i = 0; i <= 1000; i++)
if (i%5==0)
System.out.print(i+"\\t");
if (i%(5*3)==0)
System.out.println("\\n");
//println输出完全换行
//print输出完不会换行
打印99乘法表
package structure;
public class Demo04
public static void main(String[] args)
for (int j = 1; j < 10; j++)
for (int i = 1; i <= j; i++)
System.out.print(j+"*"+i+"="+(j*i)+"\\t");
System.out.println();
增强for循环
- 用于数组或集合的增强型for循环
for(声明语句:表达式)
//代码
-
声明语句:声明新的局部变量,该变量的类型必须与数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
-
表达式:要访问的数组名,或者返回值为数组的方法
我们先直接来看一个例子:
package structure;
public class Demo05
public static void main(String[] args)
int[] numbers = 1,2,3,4,5;
for (int x:numbers)
System.out.print(" "+x);
//输出值: 1 2 3 4 5
相当于遍历数组元素的一种简便方法
跟
for(int i=0;i<5;i++)
是一样效果的
break continue
- break在任何循环语句的主体部分,均可用break控制循环的流程,break用于强行退出循环,不执行循环中剩余的语句
- continue用于终止某次循环过程,跳过循环体中尚未执行的语句,接着进行下一步是否进行循环的判定
break前面有,这边就写一个continue的例子:输出1~30内所有的奇数:
package structure;
public class Demo06
public static void main(String[] args)
for (int i = 0; i < 30; i++)
if (i%2==0)
System.out.print(" ");
continue;
System.out.print(i);
//输出 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
关于goto关键字与标签
- goto很老的用法,不推荐使用
标签用法:标签可以放在循环语句之前。我们希望在其中嵌套另一个循环,由于break和continue通常只能中断当前循环,但若随标签使用,它们就会中断到存在标签的地方。
输出0到100之间的质数:
package structure;
public class Demo07
public static void main(String[] args)
int count = 0;
outer:for (int i=2;i<=100;i++)
for (int j=2;j<i;j++)
if (i % j == 0)
continue outer;
System.out.print(" "+i);
//输出 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
循环综合实例:打印三角形
package structure;
public class Demo08
public static void main(String[] args)
//打印5行三角形
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();
/*输出
*
***
*****
*******
*********
*/
以上是关于java入门09--循环与分支的主要内容,如果未能解决你的问题,请参考以下文章