编程日记:Java学习之路(四)
4.循环语句
4.1循环语句:
当某个条件满足时反复执行一段代码块,直到这个条件不满足时跳出循环继续执行后面的代码。
(1)while语句
// ①while ( 布尔表达式 ) { // ②} // ③
(2)do-while语句
// ①do { // ②} while ( 布尔表达式 );// ③
while语句和do-while语句在使用时的区别:
当第一次布尔表达式的值为false时:
while语句的循环体一次也不执行
do-while语句的循环体会被执行一次
while语句存在的问题:
处理循环变量的代码分散在程序各处,代码不够紧凑。
(3)for语句
for ( int i = 0; i < 10; i++ ) { // 代码块}
while语句和for语句在使用时的区别:
while语句适用于无法确定次数的循环
只需要指定判断条件
读文件中的数据
for语句适用于可以确定次数的循环
需要指定循环次数(起点、终点、递增值)
累加计算
嵌套的循环语句:
循环语句可以互相嵌套
循环语句可以和分支语句互相嵌套
循环变量的作用范围:只在循环体内有效。
在写一个循环语句之前需要注意三件事情:
(1)循环变量:执行次数
(2)循环条件:在什么时候退出
(3)循环体:
4.2 控制语句:
·break语句
·continue语句
·return语句
break语句:
在switch语句中,跳出switch语句执行后面的代码
在循环语句中,跳出循环执行后面的代码
配合if语句使用,当满足某一条件时跳出循环
在嵌套的循环语句中,配合标签跳出指定的循环语句
break语句只能跳出离自己最近的循环语句,如果要跳出多个循环语句,需要配合标签使用
for ( int i = 1; i < 9; i++ ) { for ( int j = 1; j < 9; j++ ) { if ( j > 5 ) { break; } } }
loop: for ( int i = 1; i < 9; i++ ) { for ( int j = 1; j < 9; j++ ) { if ( j > 5 ) { break loop; } } }
continue语句:
在循环语句中,跳出本次循环重新判断循环条件
配合if语句使用,当满足某一条件时跳出本次循环
在嵌套的循环语句中,配合标签跳出指定的循环语句的本次循环过程
同break语句
return语句:
退出函数
如果函数为主函数,则退出程序
死循环:
while ( true ) { // 代码块} for ( ; ; ) { // 代码块}
死循环不是错误,有些程序需要死循环。
如果一个循环中包含break语句,就不是死循环。
项目需求:
实现一个ATM,程序启动后要求输入密码,如果密码正确,则进入主界面,否则再次要求输入密码,连续三次输入错误则退出程序。
在主界面中有四个选项,分别为查询余额、存款、取款和退出,用户选择相应的功能后会有对应的提示引导用户进行操作,如果用户选择退出,则退出本程序,否则再次显示主界面。
代码:
import java.util.Scanner; public class Java_day04_02_ATM { public static void main(String[] args){ //初始化模块 int password = 123456789; double BALANCE = 10000.0; System.out.println("请输入密码:"); int use_password1=0; for(int i = 0;i<3;i++){ Scanner s = new Scanner(System.in); int passworduse = s.nextInt(); if(passworduse==password){ while (true) { System.out.print("1.余额查询 "); System.out.print("2.存款 "); System.out.print("3.取款 "); System.out.println("4.退出"); Scanner q = new Scanner(System.in); int XuanXiang = q.nextInt(); switch (XuanXiang) { case 1: System.out.println("您的余额为:"+BALANCE);break; case 2: System.out.println("请输入存款金额:"); Scanner w = new Scanner(System.in); int cq = w.nextInt(); if(cq>=0) { BALANCE += cq; System.out.println("存款成功,您的余额为:" + BALANCE); } else{ System.out.println("输入金额不符,存款失败"); } break; case 3: System.out.println("请输入取款金额:"); Scanner e = new Scanner(System.in); int qk = e.nextInt(); BALANCE -= qk; if(qk>=0 || qk<=BALANCE){ System.out.println("取款成功,您的余额为:"+BALANCE); }else{ System.out.println("输入金额不符,或余额不足,取款失败"); } break; case 4: System.out.println("感谢您的使用,再见"); return; } } } if(i<=1){ System.out.println("密码输入错误"); }else { System.out.println("输入密码错误三次,程序退出"); } } } }
练习:
(1)从键盘输入两个整数,要求计算两个整数之间所有整数的和。
import java.util.Scanner; public class Java_day04_03 { public static void main(String[] args){ Scanner s = new Scanner(System.in); System.out.print("请输入第一个数:"); int a = s.nextInt(); System.out.print("请输入第二个数:"); int b = s.nextInt(); int sum = 0; for(int i = a+1;i<b;i++){ sum += i; } System.out.print("这两个数之间整数的和为:"+sum); } }
(2)从键盘输入一个整数m,输出使用“*”组成的边长为m的三角形。例如m = 3时,输出:
import java.util.Scanner; public class Java_day04_04 { public static void main(String[] args){ Scanner s = new Scanner(System.in); int n = s.nextInt(); for(int i = 0;i<n;i++){ for(int j = 0;j<=i;j++){ System.out.print("*"); } System.out.println(); } } }
扩展:
关键字:final指示常量(main方法内)
final double CM_PER_INCH=2.54;
static final设置类常量(main方法外)
public static final double CM_PER_INCH=2.54
我们可以自定义枚举类型,枚举类型包括有限个命名的值
enum Size{small,medium,large}; Size s = Size.small
四舍五入运算:
(int)Math.round(x)
这里仍然要进行强制类型转换,因为round方法返回的是long类型,由于存在信息丢失的可能性,所以只有使用显示的强制类型转换,才能够将long类型转换为int类型
字符串是不可被修改的,但是可以拼接
greeting = greeting.substring(0,3)+"p"

浙公网安备 33010602011771号