接上篇Java基础语法(三)——运算符
程序按照我们代码的书写顺序一行一行的执行,如果调整代码的书写顺序, 则执行顺序也发生变化
下面我将举两个代码的示例,带大家了解一下顺序结构的具体使用
代码一:
编译实现效果:
按照我们所想的那样,顺序结构按照我们代码书写顺序,一行一行执行代码。打印出 I like Beijng
如果我们改变打印顺序,在顺序结构下代码的执行又是如何实现的呢?
代码二:
编译实现效果:
当我们改变代码的顺序,那么执行时按照顺序结构,打印的内容也会随之而改变。
书写格式一
书写格式二
书写格式三 ----多分支的情况
这里的三种书写规范,代表了 if 语句的多种情况。我们可以根据实际情况进行自主选择。
好了,接下来我们进行几道选择语句的练习编程题目.
题目要求:
判断奇偶数
代码实现:
public class Main {
//判断奇偶数
public static void main(String[] args) {
int num = 10;
if (num % 2 == 0) {
System.out.println("num 是偶数");
} else {
System.out.println("num 是奇数");
}
}
}
编译实现的效果:
我们使用了 if …else 语句来区分奇数、偶数,从而进行数字的奇偶判断。
题目要求:
判定一个数字是正数还是负数
代码实现:
public static void main(String[] args) {
int num = 10;
if (num > 0) {
System.out.println("num 是正数");
} else if (num < 0) {
System.out.println("num 是负数");
} else {
System.out.println("num 是 0");
}
}
编译效果实现:
这里我们就使用了多支选择语句的用法,进行三个选择时,用 if…else if…else 进行程序结构控制,达成我们想要实现的效果.
题目要求:
判定某一年份是否是闰年
代码实现:
public static void main(String[] args) {
int year = 2000;
if (year % 100 == 0) {
// 判定世纪闰年
if (year % 400 == 0) {
System.out.println("是闰年");
} else {
System.out.println("不是闰年");
}
} else {
// 普通闰年
if (year % 4 == 0) {
System.out.println("是闰年");
}
}
}
编译实现效果:
我们在这个练习题中,使用了if 语句的嵌套使用,从而更方便的达成我们的题目要求.
int x = 10;
int y = 10;
if (x == 10)
if (y == 10)
System.out.println("aaa");
else
System.out.println("bbb");
if 后面可以不加上大括号,但是只能执行跟在其后面的一条语句,在这个代码中,我们视觉的看到 else 和第一个 if 相匹配 , 但是 在不加大括号的情况下,else 只和 最近的 if 相匹配.
还有,为了避免出现自己的判断错误,尽量在需要加大括号的语句全部加上大括号(不要省略).
// 风格1
int x = 10;
if (x == 10) {
// 满足条件
} else {
// 不满足条件
}
// 风格2
int x = 10;
if (x == 10) {
// 满足条件
}
else
{
// 不满足条件
}
在 Java 中尽管两种代码风格都是合法的,但是Java还是更推荐 风格1
{ 放在 if / else 同一行.
int x = 20;
if (x == 10); {
System.out.println("hehe");
}
// 运行结果
hehe
我们可以看到在if()之后不小心加上了;,在此处多写了一个 分号, 导致分号成为了 if 语句的语句体, 而 { } 中的代码已经成为了和一个 if 无关的代码块.
这样的错误我们要尽量避免.
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; }
根据 switch 中值的不同, 会执行对应的 case 语句. 遇到 break 就会结束该 case 语句.
如果 switch 中的值没有匹配的 case, 就会执行 default 中的语句.
代码实现效果:
我们建议一个 switch 语句最好都要带上 default.且default的位置不固定.
注意事项1
break 不要遗漏, 否则会失去 “多分支选择” 的效果
代码示例:
public static void main(String[] args) {
int day = 1;
switch(day) {
case 1:
System.out.println("星期一");
case 2:
System.out.println("星期二");
case 3:
System.out.println("星期三");
case 4:
System.out.println("星期四");
case 5:
System.out.println("星期五");
case 6:
System.out.println("星期六");
case 7:
System.out.println("星期日");
default:
System.out.println("输入有误");
}
}
实现效果:
注意事项2
switch 中的值只能是 整数|枚举|字符|字符串
之前我们的代码示例switch()中跟的都是 int 类型的数据
那么switch()中的值可以是其他类型吗?
我们对其它类型的数据进行试验…
long
float
double
char
String
代码实现效果:
所以 switch()中的数据可以是 String 类型的.
总之,switch 中的值只能是 整数|枚举|字符|字符串.
注意事项3
switch 不能表达复杂的条件
如果是这样的代码:
这样的题目条件,明显使用 if 语句表达更为方便 , 使用 switch 语句则无法表示.
break
功能: break 的功能是让循环提前结束,执行到 break 就会让循环结束,直接跳出循环
coutinue
功能: continue 的功能是跳过这次循环, 立即进入下次循环.
了解了while 语句的语法结构,那么我们来进行对 while 语句的代码练习.
题目要求:
打印 1 - 10 的数字
代码实现:
实现效果:
题目要求:
计算 1 - 100 的和
代码实现:
1.和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
2.和 if 类似, while 后面的 { 建议和 while 写在同一行.
3.和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行.
相比于 while 循环, for 循环将这三个部分合并在一起, 写代码时不容易遗漏.
了解了 for 语句的语法结构,那么我们来进行对 while 语句的代码练习.
我们将上面两道 while 循环的练习题改成用for 循环来表示
题目要求:
打印 1 - 10 的数字
代码实现:
实现效果:
题目要求:
计算 1 - 100 的和
代码实现:
实现效果:
打印 1 -10的数字
- do while 循环最后的分号不要忘记
- 一般 do while 很少用到, 更推荐使用 for 和 while.
System.out.println(msg);
输出一个字符串, 带换行
System.out.print(msg);
输出一个字符串, 不带换行
System.out.printf(format, msg);
格式化输出
println 输出的内容自带 \n, print 不带 \n
printf 的格式化输出方式和 C 语言的 printf 是基本一致的.
什么是格式化输出?
将数据按以下类型(部分)进行输出:
转换符 | 类型 | 举例 |
---|---|---|
d | 十进制整数 | ( “%d” ,10) |
x | 十六进制整数 | ("%x", 100) |
f | 单精度浮点数 | ("%f",100.0) |
s | 字符串 | ("%s",“abc”) |
c | 字符 | ("%c",‘1’) |
我们只是将部分格式化的数据列举出来,具体的格式化类型请大家自行查找.这种格式化打印在C语言中十分常见.
首先我们需要导入 util 包
import java.util.Scanner; // 需要导入 util 包
从键盘输入一个整形:
public static void main(String[] args) {
// 输入一个整型
Scanner scanner = new Scanner(System.in);
int a=scanner.nextInt();
// 输入一个数打印一个数
System.out.println(a);
}
实现效果:
从键盘输入一个字符串:
public static void main(String[] args) {
// 输入一个字符串
Scanner scanner = new Scanner(System.in);
String a=scanner.nextLine();
// 输入一个字符串打印一个字符串
System.out.println(a);
}
实现效果:
这里的 nextline —— 是输入一行,且遇到空格不会中止读取
从键盘输入一个浮点数:
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double a = scanner.nextDouble();
System.out.println(a);
}
实现效果:
代码实现:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNextInt()){
int a = scanner.nextInt();
System.out.println(a);
}
}
实现效果:
我们实现多组输入数字,最后ctrl + D 停止循环.
下面是hasNext 的具体使用
我们根据个人信息,输入输出如下
输入的类型依次是 字符串 整形 浮点型
显示效果如下:
我们在输入整形数据18以后,按下回车,发现直接跳到了输入浮点型数据的内容,字符串类型直接跳过了,这样的输入就存在了问题.
我们可以当作 把在输入整形后 的回车 当成了 输入字符串类型的内容,所以跳过了输入字符串.
所以 对于 Java 的输入我们建议:把输入字符串放在最前面,字符串的前面不要输入整形或其他类型的数据.
游戏规则:
系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 “低 了”, 如果输入的数字比该随机数大, 提示 “高了” , 如果输入的数字和随机数相等, 则提示 “猜对了”
好了,我们熟悉了Random 的使用,这个游戏我们首先要生成一个 在 0-100范围内的随机数
Randnum randNum = new Random();
int randNum = Randdom.nextInt(100);
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
将你猜的数字与随机数比较,如果猜小了,打印“你猜小了”,猜大了,打印“你猜大了”,猜对了,打印“你猜对了”,然后跳出循环. 没有猜对则一直比较.
我们用while(true)来一直循环,当num== randNum 时 break跳出循环.
Scanner scanner = new Scanner(System.in);
while(true){
System.out.print("请输入要猜的数字:>");
int num = scanner.nextInt();
if(num<randNum){
System.out.println("你猜小了");
}else if(num>randNum){
System.out.println("你猜大了");
}else{
System.out.println("你猜对了");
break;
}
}
import java.util.Random;
import java.util.Scanner;
public static void main13(String[] args) {
Scanner scan=new Scanner(System.in);
Random random = new Random();
int randNum = random.nextInt(100);
//System.out.println(randNum);
while(true){
System.out.println("请输入数字:");
int num=scan.nextInt();
if(num<randNum){
System.out.println("你猜小了");
}
else if(num==randNum){
System.out.println("你猜对了");
break;
}
else if(num>randNum){
System.out.println("你猜大了");
}
}
}
实现效果:
好了,Java基础 – 程序逻辑控制的知识就分享到这里,希望大家看完之后多多练习,感谢大家的欣赏!!!
Java基础入门训练博客入口
谢谢大家的欣赏与关注!!!