目录
顺序结构
分支结构
if语句
输入字符串
注意事项
switch语句
循环结构
while循环
如何调试代码
while循环的易错点
break
continue
for循环
猜数字游戏
特点:程序的执行与代码的执行有关
System.out.println("1") System.out.println("2"); System.out.println("3"); System.out.println("4");
以上代码打印的结构为1,2,3,4。
若以上代码语句的顺序改变,使得代码的执行改变,程序的执行也会跟着改变。
1.
if(布尔表达式){ 语句块;//条件满足时执行 }
2.
if(布尔表达式){ 语句块;//条件满足时执行 }else{ 语句块;//条件补满足时执行 }
3.
if(布尔表达式){ 语句块;//条件满足时执行 }else if(布尔表达式){ 语句块;//条件满足时执行 }else{ 语句块;//条件都不满足时执行 }
首先需输入Scanner+回车,引入头文件,再完整输入准备语句。
输入字符串时,next()和nextLine()会有区别:
1.悬垂else的问题
此时else会和第二个if语句结合,输出结果为aaa。
此时输出结果为bbb。
应该改为:(目的:提高代码的可阅读性)
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 (循环条件(布尔表达式)){ 循环语句; } //当循环条件满足时执行循环语句,不满足不执行
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按钮,程序已经开始执行,只不过当前的程序停留在打了断点的这一行下。
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的功能是让循环提前结束。
如while循环加break打印数字3:
注意:break只能结束其最近的一层循环
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(表达式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);