while 基本语法:
循环变量初始化;
while (循环条件){
循环体(语句);
循环变量迭代;
}
while流程图:
代码实现:
- double money=100000;
- int count=0;//累积的路口
- while (true){
- if (money>50000){
- // money=money-money*0.05;这行代码的写法等价于下面的写法
- money*=0.95;
- count++;
- }else if (money<1000){
- money-=1000;
- count++;
- }else {
- break;
- }
- }
- System.out.println("100000可以过"+count+"路口……剩下"+money);
结果:
思路分析:
定义int n=22;使用 if …… else if ……else 即可.
代码实现:
- Scanner myScanner=new Scanner(System.in);
- int n = 22;
- System.out.println("请输入一个整数");
- n=myScanner.nextInt();
- if (n>0){
- System.out.println(n+"属于大于0的范围");
- }else if (n<=0){
- System.out.println(n+"属于小于或等于0的范围");
- }else {
- System.out.println("退出程序……");
- }
结果:
第一种情况
第二种情况
思路分析: 1.定义:int year 保存年 2. 年份能被4整除,但不能被100整除==》year%4==0year%100!=0 3.能被400整除=》year%400==0 4.上面的2和3是或的关系
代码实现:
- int year=2024;
- if (year%4==0&&year%100!=0||year%400==0){
- System.out.println("这一年是闰年");
- }else {
- System.out.println("这一年不是闰年");
-
- }
结果:
例如:153:=1*1*1+3*3*3+5*5*5
思路分析: 1. 比如: int n=153; 2. 先得到 n的百位 ,十位,个位的数字,使用if 判断它们的立方和是否相等 3. n 的百位=n/100 4. n的十位=n%100/10 5. n的个位=n%10 6, 判断即可
代码实现:
- int n =154;
- int n1=n/100;
- int n2=n%100/10;
- int n3=n%10;
- if (n1*n1*n1+n2*n2*n2+n3*n3*n3==n){
- System.out.println(n+"是水仙花数");
- }else {
- System.out.println(n+"不是水仙花数");
- }
结果:
思路分析: 1. 先输出1-100的所有的数 2. 然后过滤输出 不能被5整除的数 3. 每5个一行,我们使用 int count 统计输出个数,当 count % 5=0 就说明输出了5个,这时,我们输出了一个换行即可控制
- int count = 0;//统计输出个数
- for (int i = 1; i <= 100; i++) {
- if (i % 5 != 0) {
- count++;
- System.out.println(i + "");
- }
- //判断,每满5个就输出一个换行
- if (count%5==0){
- System.out.println();
- }
- }
结果: 运行结果很长,下面只放了前面一部分的结果。
思路分析: 考察我们对a-z编码和for的综合使用 1. b='a'+1 ; c='a'+2; 2. 使用for搞定
代码实现:
- System.out.println("-------输出小写的a-z----------");
- for (char c1='a';c1<='z';c1++){
- System.out.print(c1+"");
- }
- System.out.println("\n");
- System.out.println("--------输出大写的Z-A-----------");
- //灵活的使用,编程……
- for (char c1='Z';c1>='A';c1--){
- System.out.print(c1+"");
- }
结果:
顺道补充一些关于char 的知识(防遗忘【捂脸哭表情】) :
1. 字符类型可以表示单个字符,字符类型是char,char 是两个字节(可以存放汉字),多个字节我们用字符串String
2. 字符常量是用单引号(‘ ’)括起来的单个字符。 例如:char c1=‘a’; char c2=‘中’ ; char c3=‘9’;
3. 在Java中,char的本质是一个整数,在输出时,是Unicode码对应的字符。
4. 可以直接给char 赋一个整数,然后输出时,会按照对应的Unicode字符输出。 例如:97=》a
5. char 类型是可以运算的,相当于一个整数,因为它都有对应的Unicode码。
思路分析: 1. 1-1/2+1/3-1/4……1/100=(1/1)-(1/2)+(1/3)-(1/4)+(1/5)-(1/6)……1/100 2.从上面的分析我们可以看到 (1)一共有100个数,分子为1,分母为1-100 (2)还发现,当分母为奇数时,前面是+,分母为偶数时,前面是- 3. 我们可以使用for+ 判断即可完成 4、 把结果存放到double sum 5. 这里有一个隐藏的陷阱,要把公式分子1写出1.0才能得到精确的小数
代码实现:
- double sum =0;
- for (int i=1;i<=100;i++){
- //判断是奇数还是偶数 ,然后做不同的处理
- if (i%2!=0){//分母为奇数
- sum+=1.0/i;
- }else {//分母为偶数
- sum-=1.0/i;
- }
- }
- System.out.println("sum="+sum);
结果:
思路分析: 1. 一共有100项 相加 2. 每一项的数字在逐渐增加 3. 很像一个双层循环 i 可以表示第几项,同时也是当前项的最后一个数 4. 使用sum 进行累积即可
代码实现:
- int sum=0;
- for (int i=1;i<=100;i++){
- for (int j=1;j<=i;j++){//内层对1-i进行循环
- sum+=j;
- }
- }
- System.out.println("sum="+sum);
结果: