✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人

个人主页:

橘橙黄又青-CSDN博客

目标:

1. Java

中程序的逻辑控制语句

2. Java

中的输入输出方式

3.

完成猜数字游戏

废话不多讲,我们直接开始。

1.顺序结构

顺序结构

比较简单

System.out.println("aaa");

System.out.println("bbb");

System.out.println("ccc");

// 运行结果

aaa

bbb

ccc

按照代码书写的顺序一行一行执行,

如果调整代码的书写顺序

,

则执行顺序也发生变化。

2.分支结构 

2.1 if 语句

1.

语法格式

1

单分支

if(布尔表达式){

// 语句

}

2.

语法格式

2

双分支

if(布尔表达式){

// 语句1

}else{

// 语句2

}

如果布尔表达式结果为

true

,则执行

if

中语句,否则执行

else

中语句。

案例:

比如:小明,如果这次考到

90

分以上,给你奖励一个大鸡腿,否则奖你一个大嘴巴子。

int score = 92;

if(score >= 90){

System.out.println("吃个大鸡腿!!!");

}else{

System.out.println("挨大嘴巴子!!!");

}

3.

语法格式

3

多分支 

if(布尔表达式1){

// 语句1

}else if(布尔表达式2){

// 语句2

}else{

// 语句3

}

案例:

if(score >= 90){

System.out.println("优秀");

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

System.out.println("良好");

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

System.out.println("中等");

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

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

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

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

}else{

System.out.println("错误数据");

}

【注意事项】

这里代码风格和c语言不一样。

JAVA风格:

int

x

=

10

;

if

(

x

==

10

) {

//

语句

1

}

else

{

//

语句

2

}

 悬垂 else 问题

if / else

语句中可以不加 大括号

.

但是也可以写语句

(

只能写一条语句

).

此时

else

是和最接近的

if

匹配

.但是实际开发中我们 不建议

这么写

.

最好加上大括号

.

2.2 switch 语句

基本语法

switch

(

表达式

){

        case

常量值

1

:{

                语句1

;

                [

break

;]

        }

        case

常量值

2

:{

                语句2

;

                [

break

;]

        }

        default

:{

                内容都不满足时执行语句

;

                [

break

;]

        }

}

执行流程:  

1.

先计算表达式的值

2.

case

依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到

break

时结束

3.

当表达式的值没有与所列项匹配时,执行

default

和c语言一样但是switch后面括号里面不能是浮点型和布尔类型和long类型

 案例:根据 day 的值输出星期

int day = 1;

switch(day) {

case 1:

System.out.println("星期一");

break;

case 2:

System.out.println("星期二");

break;

case 3:

System.out.println("星期三");

break;

case 4:

System.out.println("星期四");

break;

case 5:

System.out.println("星期五");

break;

case 6:

System.out.println("星期六");

break;

case 7:

System.out.println("星期日");

break;

default:

System.out.println("输入有误");

break;

}

【注意事项】

多个case后的常量值不可以重复 switch的括号内只能是以下类型的表达式:

        基本类型:byte

char

short

int

,注意不能是

long类型

        引用类型:String

常量串、枚举类型

案例:

double num = 1.0;

switch(num) {

case 1.0:

System.out.println("hehe");

break;

case 2.0:

System.out.println("haha");

break;

}

// 编译出错

Test.java:4: 错误: 不兼容的类型: 从double转换到int可能会有损失

switch(num) {

^

1 个错误

 break 不要遗漏, 否则会失去 "多分支选择" 的效果

案例:

int day = 1;

switch(day) {

case 1:

System.out.println("星期一");

// break;

case 2:

System.out.println("星期二");

break;

}

// 运行结果

星期一

星期二

 switch 虽然支持嵌套, 但是很丑,一般不推荐~

3.循环结构

3.1while 循环

 基本语法格式:

while

(

循环条件

){

        循环语句

;

}

循环条件为 true, 则执行循环语句; 否则结束循环.  与c一样相同。

案例1:

打印

1 - 10

的数字

代码 :

int num = 1;

while (num <= 10) {

System.out.println(num);

num++;

}

当一个代码中带有多重循环的时候

,

代码的复杂程度就大大提高了

.

而比较复杂的代码就更容易出错

.后面我们会采用更简单的办法来解决这个问题。

注意事项

1.

if

类似

, while

下面的语句可以不写

{ } ,

但是不写的时候只能支持一条语句

.

建议还是加上

{ }

2.

if

类似

, while

后面的

{

建议和

while

写在同一行

.

3.

if

类似

, while

后面不要多写 分号

,

否则可能导致循环不能正确执行

3.2 for 循环 

基本语法

for

(

表达式①

;

布尔表达式②

;

表达式③

){

        表达式④

;

}

执行过程:

表达式

1:

用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次

表达式

2:

循环条件,满则循环继续,否则循环结束

表达式

3:

循环变量更新方式

【执行过程】

 ①②③④--->②③④--->②③④--->②③④--->②③④--->②③④--->...--->②为false,循环结束。

 计算 5 的阶乘

int result = 1;

for (int i = 1; i <= 5; i++) {

result *= i;

}

System.out.println("result = " + result);

【注意事项】 (和while循环类似)  

1.

if

类似

, for

下面的语句可以不写

{ } ,

但是不写的时候只能支持一条语句

.

建议还是加上

{ }

2.

if

类似

, for

后面的

{

建议和

while

写在同一行

.

3.

if

类似

, for

后面不要多写 分号

,

否则可能导致循环不能正确执行

.

4.

while

循环一样,结束单趟循环用

continue

,结束整个循环用

break

案例:

打印 1 - 10

int num = 1;

do {

System.out.println(num);

num++;

} while (num <= 10);

 3.3 do while 循环(选学)

特点:一定会执行一次。

【基本语法】

do

{

        循环语句

;

}

while

(

循环条件

);

 先执行循环语句, 再判定循环条件,循环条件成立则继续执行,否则循环结束。

注意:

1. do while

循环最后的分号不要忘记

2.

一般

do while

很少用到

,

更推荐使用

for

while.

4 break  

break 的功能是让循环提前结束.

代码示例: 找到 100 - 200 中第一个 3 的倍数 

代码:

int num = 100;

while (num <= 200) {

if (num % 3 == 0) {

System.out.println("找到了 3 的倍数, 为:" + num);

break;

}

num++;

}

// 执行结果

//找到了 3 的倍数, 为:102

 执行到 break 就会让循环结束。

5. continue

continue 的功能是跳过这次循环, 立即进入下次循环.

代码示例

:

找到

100 - 200

中所有

3

的倍数

 代码:

int num = 100;

while (num <= 200) {

if (num % 3 != 0) {

num++; // 这里的 ++ 不要忘记! 否则会死循环.

continue;

}

System.out.println("找到了 3 的倍数, 为:" + num);

num++;

}

执行到

continue

语句的时候

,

就会立刻进入下次循环

(

判定循环条件

),

从而不会执行到下方的打印语句。

 6.输出到控制台

基本语法:

System

.

out

.

println

(

msg

);

//

输出一个字符串

,

带换行

System

.

out

.

print

(

msg

);

//

输出一个字符串

,

不带换行

System

.

out

.

printf

(

format

,

msg

);

//

格式化输出

println

输出的内容自带

\n,

print

不带

\n

printf

的格式化输出方式和

C

语言的

printf

是基本一致的。

6.1格式化字符串

转换符

类型

举例

效果

d

十进制整数

("%d", 100)

100

x

十六进制整数

("%x", 100)

64

o

八进制整数

("%o", 100)

144

f

定点浮点数

("%f", 100f)

100.000000

e

指数浮点数

("%e", 100f)

1.000000e+02

g

通用浮点数

("%g", 100f)

100.000

a

十六进制浮点数

("%a", 100)

0x1.9p6

s

字符串

("%s", 100)

100

c

字符

("%c", ‘1’)

1

b

布尔值

("%b", 100)

true

h

散列码

("%h", 100)

64

%

百分号

("%.2f%%", 2/7f)

0.29%

 这个表格没必要记住, 用到的时候根据需要查一下就行了.

7.从键盘输入

使用

Scanner

读取字符串

/

整数

/

浮点数

案例:

import java.util.Scanner; // 需要导入 util 包

Scanner sc = new Scanner(System.in);

System.out.println("请输入你的姓名:");

String name = sc.nextLine();

System.out.println("请输入你的年龄:");

int age = sc.nextInt();

System.out.println("请输入你的工资:");

float salary = sc.nextFloat();

System.out.println("你的信息如下:");

System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);

sc.close(); // 注意, 要记得调用关闭方法

输出结果:

请输入你的姓名:

张三

请输入你的年龄:

18

请输入你的工资:

1000

你的信息如下:

姓名

:

张三

年龄:

18

工资:

100

使用 Scanner 循环读取 N 个数字,并求取其平均值(重点) 

代码:

Scanner sc = new Scanner(System.in);

int sum = 0;

int num = 0;

while (sc.hasNextInt()) {

int tmp = sc.nextInt();

sum += tmp;

num++;

}

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

System.out.println("avg = " + sum / num);

sc.close();//关闭new打开的类

执行结果;

//

执行结果

10

40.0

50.5

^Z

sum

=

150.5

avg

=

30.1

注意事项

:

当循环输入多个数据的时候

,

使用

ctrl + z

来结束输入

(Windows

上使用

ctrl + z, Linux / Mac

上使用

ctrl + d).

在后续

oj

题当中,遇到

IO

类型的算法题,有各种循环输入的要求,后序给大家介绍。

8. 猜数字游戏

游戏规则

:

系统自动生成一个随机整数

(1-100),

然后由用户输入一个猜测的数字

.

如果输入的数字比该随机数小

,

提示

"

低了",

如果输入的数字比该随机数大

,

提示

"

高了

" ,

如果输入的数字和随机数相等

,

则提示

"

猜对了

" .

代码:

import java.util.Random;

import java.util.Scanner;;

class Test {

public static void main(String[] args) {

Random random = new Random(); // 默认随机种子是系统时间

Scanner sc = new Scanner(System.in);

int toGuess = random.nextInt(100);

// System.out.println("toGuess: " + toGuess);

while (true) {

System.out.println("请输入要输入的数字: (1-100)");

int num = sc.nextInt();

if (num < toGuess) {

System.out.println("低了");

} else if (num > toGuess) {

System.out.println("高了");

} else {

System.out.println("猜对了");

break;

}

}

sc.close();

}

}

好啦今天就到这里了,感谢观看。

精彩文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: