目录
顺序结构
特点:程序的执行与代码的执行有关
System.out.println("1")
System.out.println("2");
System.out.println("3");
System.out.println("4");
以上代码打印的结构为1,2,3,4。
若以上代码语句的顺序改变,使得代码的执行改变,程序的执行也会跟着改变。
分支结构
if语句
1.
if(布尔表达式){
语句块;//条件满足时执行
}
2.
if(布尔表达式){
语句块;//条件满足时执行
}else{
语句块;//条件补满足时执行
}
3.
if(布尔表达式){
语句块;//条件满足时执行
}else if(布尔表达式){
语句块;//条件满足时执行
}else{
语句块;//条件都不满足时执行
}
输入字符串
首先需输入Scanner+回车,引入头文件,再完整输入准备语句。
输入字符串时,next()和nextLine()会有区别:
注意事项
1.悬垂else的问题
此时else会和第二个if语句结合,输出结果为aaa。
此时输出结果为bbb。
应该改为:(目的:提高代码的可阅读性)
switch语句
switch (整型|枚举|字符|字符串){
case 内容1:
内容1符合时执行的语句;
break;
case 内容2:
内容2符合时执行的语句;
break;
.......
default:
内容都不满足时执行的语句;
break;
}
注意:
1.switch语句中不能作为参数的数据类型有long,float,double,boolean
2.在每一种case情况后加break结束循环,否则会接着执行剩下的case情况
int a = 10;
switch (a){
case 10:
System.out.println("hello");
break;
case 20:
System.out.println("world");
break;
default:
System.out.println("hello world");
}
代码加break后运行结果为hello,若不加break,运行结果为:
循环结构
while循环
while (循环条件(布尔表达式)){
循环语句;
}
//当循环条件满足时执行循环语句,不满足不执行
1.代码(1~5)相加
int i = 1;
int sum = 0;
while(i <= 5) {
sum += i;
i++;
}
System.out.println(sum);
2.代码(1~5)奇数相加
int i = 1;
int sum = 0;
while(i <= 5) {
sum += i;
i += 2;
}
System.out.println(sum);
3.代码 5!
//5的阶乘
int sum = 1;
int i = 5;
while (i >= 1){
sum *= i;
i--;
}
System.out.println(sum);
4.代码 多个数的阶乘相加
//求多个数阶乘相加
int j = 1;
int sum = 0;
while (j <= 5){
int ret = 1;
int i = 1;
while (i <= j){
ret *= i;
i++;
}
sum += ret;
j++;
}
System.out.println(sum);
如何调试代码
debug:观察代码如何一步一步执行,只要打了断点并点击debug按钮,程序已经开始执行,只不过当前的程序停留在打了断点的这一行下。
while循环的易错点
1.while语句不加括号(影响代码的可读性)
//多个while语句中不加括号的情况
int k = 10;
int j = 10;
while (k > 0)
System.out.println("abcd");
while(j > 0)
System.out.println("1234");
System.out.println("12345");
System.out.println("123456");
以上代码存在歧义,会给人不同的信息,代码最终运行结果是abcd死循环。
正确的写法应该是:
int k = 10;
int j = 10;
while (k > 0) {
System.out.println("abcd");
}
while(j > 0) {
System.out.println("1234");
}
System.out.println("12345");
System.out.println("123456");
break
break的功能是让循环提前结束。
如while循环加break打印数字3:
注意:break只能结束其最近的一层循环
continue
continue的功能是结束本次循环,进入下一次循环 。
如while循环加continue打印1~10中是3的倍数的数字
练习:
//打印0~100之间,既能被3整除又能被5整除的数字
int i = 1;
while (i <= 100){
if (i % 15 == 0){
System.out.println(i);
i++;
continue;
}
i++;
}
for循环
for(表达式1;表达式2(布尔表达式);表达式3){
循环体;
}
表达式1:用于初始化循环变量;表达式2:循环条件;条件3:更新循环变量
循环步骤:
猜数字游戏
随机生成一个数字后开始猜数字,猜错有提示信息,猜大或猜小
public static void main7(String[] args) {
//完成猜数字游戏 ,用户输入数字,判断该数字是大于,小于,还是等于随机生成的数字,等于的时候
//退出程序
int n = (int)(Math.random() * 100);
do {
System.out.print("请尝试输入一个数\n");
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
if(num > n) {
System.out.print("猜大了\n");
}else if (num < n){
System.out.print("猜小了\n");
}else {
System.out.print("猜对了\n");
break;
}
} while(true);