1、判断奇偶
public class Ti01 { public static void main(String[] args) { // 第一种方法 使用条件语句判断数字的奇偶。 int a = 10; // 声明变量一个 偶数 int d = 11; // 声明变量一个 奇数 // 条件语句判断奇偶 if(a % 2 == 0){ // if () 里面的条件表达式 为 true(真)执行里面的代码块。 System.out.println(a + "这个数字是偶数"); }else { //当if () 里面条件表达式为false (假)执行 else 里面的代码块。 System.out.println(a + "这个数字是奇数"); } if(d % 2 == 0){ // if () 里面的条件表达式 为 true(真)执行里面的代码块。 System.out.println(d + "这个数字是偶数"); }else { //当if () 里面条件表达式为false (假)执行 else 里面的代码块。 System.out.println(d + "这个数字是奇数"); } // 第二种写法 调用方法 if (p(a)){ System.out.println(a + "这个数字是偶数"); }else { System.out.println(a + "这个数字是奇数"); } if (p(d)){ System.out.println(d + "这个数字是偶数"); }else { System.out.println(d + "这个数字是奇数"); } } // 使用方法 定义一个判断奇偶的方法,所有判断奇偶的数值可以在这个方法里使用。 public static boolean p(int a){ if (a % 2 == 0){ return true; }else { return false; } // 通过形参 a 将上面类局部变量的数值传到方法里,判断是偶数返回true,反之返回false。 } }
结果
10这个数字是偶数 11这个数字是奇数 10这个数字是偶数 11这个数字是奇数
2、判断账号密码输入正确
import java.util.Scanner; public class Ti02 { public static void main(String[] args) { // 输入账号密码,判断输入是否正确,输入错误则重新输入 最多只能输入三次 错误冻结账号。 String a = "123456"; // 设置一个 账户 int b = 654321; // 设置一个 密码 // 设置输入工具包 Scanner s = new Scanner(System.in); // 输入错误重新输入 使用循环 for (int i = 0; i < 3; i++) { // 输入的数据类型 要与声明变量的数据类型一致 System.out.print("请输入账号:"); String c = s.next(); // 输入字符串类型 System.out.print("请输入密码:"); int d = s.nextInt();// 输入整数型类型 // 因为要账号和密码都输入正确,所有c的值要与a的值一样,d的值要与b的值一样。 // if () 里要有两个条件表达式 并且值为 true 使用 && 判断两个表达式是否都为 true。 if ( a.equals(c) && b == d){ // equals 是字符串用来判断两个字符串是否相等,不能像 int 类型一样 使用 ==来判断相等。 System.out.println("账号密码输入正确"); break; // 账号密码都输入正确,不用再次循环,break 就是用来结束循环的。 }else { if (i == 2){ // 一个小条件,当输入错误为第三次时,打印出账号冻结,并退出循环。 System.out.println("账号密码输入不正确已达三次,请一小时后重新输入。"); break; } System.out.println("账号密码输入不正确,请重新输入"); } } } }
输入正确结果
请输入账号:123456 请输入密码:654321 账号密码输入正确
输入错误三次结果
请输入账号:123 请输入密码:321 账号密码输入不正确,请重新输入 请输入账号:111 请输入密码:333 账号密码输入不正确,请重新输入 请输入账号:123456 请输入密码:123456 账号密码输入不正确已达三次,请一小时后重新输入。
1、问小明一年花了多少钱。
6公里(含)内3元;
6公里至12公里(含)4元;
12公里至22公里(含)5元;
22公里至32公里(含)6元;
32公里以上部分,
每增加1元可乘坐20公里
使用市政交通一卡通刷卡乘坐轨道交通,
每自然月内每张卡支出累计满100元以后的乘次,
价格给予8折优惠;满150元以后的乘次,
价格给予5折优惠;支出累计达到400元以后的乘次,不再享受打折优惠。
小明要坐一年地铁,每个月做的地铁的公里数不一样输入每月平均公里数,每个月还是60次,每个月的打折都重新算,问小明一年花了多少钱。
import java.util.Scanner; public class Ti01 { public static void main(String[] args) { Scanner s = new Scanner(System.in); // 声明一个 浮点型的空变量 用来装每个月的总钱数。 float b1 = 0; // 这个循环是用来输入12个月的次数 for (int i = 1; i <= 12; i++) { // 公里数不同,每个月的钱数不一样 声明五个 浮点型的空变量 用来装当月的总钱数。 // 要写在第一个循环里面,因为要计算每个月,每次循环都需要清零来装新的数值,因此将每个月的钱数转到下面的 b1 里面。 float a = 0; // 当月平均6公里装的钱数 float a1 = 0;// 当月平均6公里到12公里装的钱数 float a2 = 0;// 当月平均12公里到22公里装的钱数 float a3 = 0;// 当月平均22公里到32公里装的钱数 float a4 = 0;// 当月平均大于32公里装的钱数 并且 没大20公里 额外加一元钱 System.out.print("输入"+i+"月平均做了多少公里:"); int yue = s.nextInt(); for (int j = 0; j < 60; j++) { if (yue<=6&&yue>0){ if (a>=100&&a<150){ // 当本月钱到100~150之间时,打8折优惠 a += 3*0.8;// }else if (a>=150 && a<400){ // 当本月钱到150~400之间时,打5折优惠 a += 3*0.5; }else { a += 3; } }else if (yue>6&&yue<=12){ if (a1>=100 && a1<150){ // 当本月钱到100~150之间时,打8折优惠 a1 += 4*0.8; }else if (a1>=150 && a1<400){ // 当本月钱到150~400之间时,打5折优惠 a1 += 4*0.5; }else { a1 += 4; } }else if (yue>12&&yue<=22){ if (a2>=100&&a2<150){ // 当本月钱到100~150之间时,打8折优惠 a2 += 5*0.8; }else if (a2>=150 && a2<400){ // 当本月钱到150~400之间时,打5折优惠 a2 += 5*0.5; }else { a2 += 5; } }else if (yue>22&&yue<=32){ if (a3>=100&&a3<150){ // 当本月钱到100~150之间时,打8折优惠 a3 += 6*0.8; }else if (a3>=150 && a3<400){ // 当本月钱到150~400之间时,打5折优惠 a3 += 6*0.5; }else { a3 += 6; } }else if (yue>32 ){ if ((yue-32)%20 !=0 ){ if (a4>=100&&a4<150){ // 当本月钱到100~150之间时,打8折优惠 a4 += ((yue-32)/20+6+1)*0.8; //当月平均大于32公里装的钱数 并且 没大20公里 额外加一元钱。 //输入当月的公里数,比如输入58。(58-32)/20 取整数就是1 输入77:(77-32)/20 取整数就是2 //这样每大于 20 公里 就想当与加了 1元。 }else if (a4>=150 && a4<400){ // 当本月钱到150~400之间时,打5折优惠 a4 += ((yue-32)/20+6+1)*0.5; }else{ a4 += (yue-32)/20+6+1; } }else { if (a4>=100&&a4<150){ // 当本月钱到100~150之间时,打8折优惠 a4 += ((yue-32)/20+6)*0.8; }else if (a4>=150 && a4<400){ // 当本月钱到150~400之间时,打5折优惠 a4 += ((yue-32)/20+6)*0.5; }else{ a4 += (yue-32)/20+6; } } }else { System.out.println("你输入的是个数字吗?"); } } b1 += (a+a1+a2+a3+a4);// 将每个月的总钱数都加到这里。最后求出一年花了多少钱。 System.out.println("到"+i+"月之前一共花了"+b1+"元"); } } }
结果
输入1月平均做了多少公里:6 到1月之前一共花了159.89995元 输入2月平均做了多少公里:10 到2月之前一共花了349.0999元 输入3月平均做了多少公里:12 到3月之前一共花了538.29987元 输入4月平均做了多少公里:14 到4月之前一共花了757.79987元 输入5月平均做了多少公里:16 到5月之前一共花了977.29987元 输入6月平均做了多少公里:20 到6月之前一共花了1196.7998元 输入7月平均做了多少公里:22 到7月之前一共花了1416.2998元 输入8月平均做了多少公里:24 到8月之前一共花了1665.2998元 输入9月平均做了多少公里:26 到9月之前一共花了1914.2998元 输入10月平均做了多少公里:30 到10月之前一共花了2163.2998元 输入11月平均做了多少公里:31 到11月之前一共花了2412.2998元 输入12月平均做了多少公里:58 到12月之前一共花了2723.4998元
2、小明每天跑5米,每当到3的倍数的当天,少跑了3米。请问小明多少天跑完100米
public class w01 { public static void main(String[] args) { // 声明2个变量,一个是天数,一个是多少米。 int a = 0; // 米 int b = 0; // 天 // 循环条件 当跑到100米后 结束循环 while (a<100){ a += 5; // 每天跑5米 b++; // 每天 // 当到3的倍数的当天,少跑3米 if (b % 3 ==0){ a -=3; } } System.out.print("第"+ b + "天"); System.out.print("跑了"+a + "米"); } }
结果
第25天跑了101米
3、输入一个数字,求这个数字后面最小的素数
import java.util.Scanner; public class Ti03 { public static void main(String[] args) { // 输入一个数字,求这个数字后面的最小素数。 System.out.print("输入一个数字:"); Scanner s = new Scanner(System.in); int a = s.nextInt(); while (true){ a = a + 1; // 因为要求这个数后面的最小素数,不加1的话会,输入的如果是素数,会直接判断这个素数是最小素数。 boolean b = true; // 设置一个布尔值,来帮助下面的判断。 for (int i = 2; i < a; i++) { // 2是最小的素数,所以我们直接从2开始判断。 if(a % i == 0){ b = false; //if里面用来判断这个数不是素数的话,进入代码块b就会变为false。如果是素数就不会进入这个代码块,b依然为true break; } } if(b){ //根据上面的判断,只有数字是素数的情况下。b才为true,进入这个判断的数字一定是素数。 System.out.println("后面的最小素数是"+a); // 进来的第一个素数一定是输入数字后面最小的素数,直接结束循环。 break; } } } }
结果
输入一个数字:3 后面的最小素数是5
总结:
前期学习Java很痛苦,因为它太吃逻辑了,每道题都是看了一眼就会,一作直接傻眼。上面的题都是平常学习时卡了不知道我几个小时的题,辛辛苦苦做不出来,结果上网一查,只有几行代码就完事…有时以为做出来了,看了答案直接傻眼,自己错了也不知道怎么改。尽管如此,也要大量的练习来提升自己的逻辑,后面的路依然很长,祝愿所有学习Java的人,早日学成,出去高薪就业。