java比赛评级顺序输出_JavaSE流程控制(Scanner,顺序结构,选择结构,循环结构,break和continue)...

流程控制

用户交互Scanner

1.Scanner对象

Java提供了一个工具类可以获取用户的输入。java.util.Scanner是Java5的新特性,通过Scanner类来获取用户的输入。

Scanner s = new Scanner(System.in);

2.next & nextLine

public static void main(Stirng[] args){

Scanner scanner = new Scanner(System.in);

System.out.println("Next方式接收");

if(scanner.hasNext()){

String str = scanner.next();

System.out.println("输入内容:" str);

}

scanner.close();

}

测试数据:Hello World!

结果:Hello

public static void main(Stirngp[] args){

Scanner scanner = new Scanner(System.in);

System.out.println("nextLine方式接收");

if(scanner.hasNextLine()){

String str = scanner.nextLine();

System.out.println("输入内容:" str);

}

scanner.close();

}

测试数据:Hello World!

结果:Hello World!

两者区别:

next():

一定要读取到有效字符后才可以结束

对输入有效字符前遇到的空白,next()方法会自动将其去掉

只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符

next()不能得到带有空格的字符串

nextLine():

以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符

可以获得空白

3.其他方法

如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取。

public static void main(String[] args){

Scanner scanner = new Scannr(System.in);

int i = 0;

float f = 0.0f;

System.out.println("输入整数:");

if(scanner.hasNextInt){

i = scanner.nextInt();

System.out.println("整数数据:" i);

}else{

System.out.println("输入的不是整数");

}

System.out.println("输入小数:");

if(scanner.hasNextFloat){

f = scanner.nextFloat();

System.out.println("小数数据:" f);

}else{

System.out.println("输入的不是小数");

}

scanner.close();

}

练习

输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字

来结束输入并输出执行结果。

public static void main(String[] args){

Scanner scanner = new Scanner(System.in);

double sum = 0;

int m = 0;

while(scanner.hasNextDouble()){

double x = scanner.nextDouble();

m = m 1;

sum = sum x;

}

System.out.println(m "个数的和为" sum);

System.out.println(m "个数的平均值是" (sum/m));

scanner.close();

}

顺序结构

JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KzhgawnU-1607162008052)(C:\Users\dell\AppData\Roaming\Typora\typora-user-images\image-20201205170447995.png)]

选择结构

1.if单选泽结构

if语句对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳过该语句。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7bBEwVAv-1607162008059)(C:\Users\dell\AppData\Roaming\Typora\typora-user-images\image-20201205170602015.png)]

练习:

接收一个用户输入,判断输入的是否为Hello字符串。

public static void main(String[] args){

Scanner scanner = new Scanner(System.in);

System.out.println("请输入内容:");

String str = scanner.nextLine();

if(str.equals("Hello")){

System.out.println("输入的是:" str);

}

System.out.println("End");

scanner.close();

}

2.if双选择结构

当条件表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TPybS3hP-1607162008061)(C:\Users\dell\AppData\Roaming\Typora\typora-user-images\image-20201205171030146.png)]

练习:

考试分数大于60就是及格,小于60分就不及格。

public static void main(String[] args){

Scanner scanner = new Scanner(System.in);

System.out.print("请输入成绩:");

int score = scanner.nextLine();

if(score>60){

System.out.println("及格");

}else{

System.out.println("不及格");

}

scanner.close();

}

3.if多选择结构

if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uQA7Bb2S-1607162008065)(C:\Users\dell\AppData\Roaming\Typora\typora-user-images\image-20201205171349730.png)]

注意!

if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。

if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。

一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。

练习:

学校根据分数区间分为ABCD四个等级。

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.print("请输入成绩:");

int score = scanner.nextInt();

if (score==100){

System.out.println("恭喜满分");

}else if (score<100 && score >=90){

System.out.println("A级");

}else if (score<90 && score >=80){

System.out.println("B级");

}else if (score<80 && score >=70){

System.out.println("C级");

}else if (score<70 && score >=60){

System.out.println("D级");

}else if (score<60 && score >=0){

System.out.println("不及格!");

}else {

System.out.println("成绩输入不合法!");

}

scanner.close();

}

4.嵌套if语句

使用嵌套的 if…else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。你可以像 if 语句一样嵌套 else if…else。

if(布尔表达式 1){

如果布尔表达式 1的值为true执行代码

if(布尔表达式 2){

如果布尔表达式 2的值为true执行代码

}

}

5.switch多选择结构

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

switch(expression){

case value :

//语句

break; //可选

case value :

//语句

break; //可选

//你可以有任意数量的case语句

default : //可选

//语句

}

规则:

switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。

switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。

case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。

当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。

当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现break 语句。

switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。

循环结构

Java中有三种主要的循环结构:

while 循环

do…while 循环

for 循环

在Java5中引入了一种主要用于数组的增强型for循环。

1.while循环

只要布尔表达式为 true,循环就会一直执行下去。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LzjqQdtl-1607162008070)(C:\Users\dell\AppData\Roaming\Typora\typora-user-images\image-20201205172204290.png)]

练习:

计算1 2 3 … 100=?

public static void main(String[] args){

int i = 0;

int sum = 0;

while(i <= 100){

sum = sum i;

i ;

}

System.out.println("Sum= " sum);

}

2.do…while循环

布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zuAQk2kx-1607162008071)(C:\Users\dell\AppData\Roaming\Typora\typora-user-images\image-20201205172552053.png)]

练习:

计算1 2 3 … 100=?

public static void main(String[] args) {

int i = 0;

int sum = 0;

do {

sum = sum i;

i ;

}while (i <= 100);

System.out.println("Sum= " sum);

}

While和do…While的区别:

while先判断后执行,do…while是先执行后判断.

do…while总是保证循环体会被至少执行一次。

3.for循环

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JFug9xfS-1607162008075)(C:\Users\dell\AppData\Roaming\Typora\typora-user-images\image-20201205173738375.png)]

最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。

然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。

执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。

再次检测布尔表达式。循环执行上面的过程。

练习:

1.计算0到100之间的奇数和偶数的和。

public static void main(String[] args){

int oddSum = 0;

int evenSum = 0;

for(int i = 0;i<=100;i ){

if(i%2 != 0){

oddSum = oddSum i;

}else{

evenSum = evenSum i;

}

}

System.out.println("奇数的和:" oddSum);

System.out.println("偶数的和:" evenSum);

}

2.for循环输出1-1000之间能被5整除的数,并且每行输出3个。

public static void main(String[] args){

for(int i = 0;i<=1000;i ){

if(i%5 == 0){

System.out.print(i "\t");

}

if((j%(5*3)==0){

System.out.println();

}

}

}

3.打印九九乘法表。

public static void main(String[] args){

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();

}

}

4.增强for循环

for(声明语句 : 表达式){

//代码句子

}

break 和 continue

1.break关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

break 跳出最里层的循环,并且继续执行该循环下面的语句。

2.continue关键字

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。

在 for 循环中,continue 语句使程序立即跳转到更新语句。

在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

3.两者区别

break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)

continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

4.带标签的continue

goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto。然而,在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子—带标签的break和continue。

“标签”是指后面跟一个冒号的标识符,例如:label:

对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。

练习:

public static void main(String[] args) {

int count = 0;

outer: for (int i = 101; i < 150; i ) {

for (int j = 2; j < i / 2; j ) {

if (i % j == 0)

continue outer;

}

System.out.print(i " ");

}

}

来源:https://www.icode9.com/content-1-775501.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值