今天抽空有写了一道题,写之前感觉跟之前的相比有些难度,但是写完之后感觉也就那回事,多动手尝试。
通过这个题目主要学到了2点:
第一个是取整和求模的使用,比如你需要知道一个数xxx含有几个100,那么直接将这个数/100,系统会自动向下取整,直接得出来的就是包含有几个100,一个%的使用,最开始我是通过减法来求津津存钱之后还有多少剩余,但是刚开始一直报错,因为用这种方法我的思维容易想错一个地方,就算求还有多少剩余的时候减去的是存到妈妈那里一共的钱,而不是本次存的钱,后来发现用%来算,及快捷有简便。
第二个是关于break,countine,return的区别。本来我在for循环里面什么都没有写,遇到钱为负数的时候就直接输出该月份了,后来我无意间加上了break,发现把月份和总后的钱都输出了。经过看书和动手尝试得出,1.写break,会中断循环,然后执行循环下面的输出语句。2.写return,直接结束了方法(本题中也就是main方法)。3.什么都不写,只输出了循环内的语句,但是还可以继续输入,继续执行改循环。4.另外countine是中断本一次执行,跳回循环的起始处开始执行。
另外就是通过看别人的代码,学到的两个地方,一个是变量名称的选取,尽量的有意义。而是代码中尽量的添加注释,这次写的时候没有运用上,下次注意。
最后就是我学习的一个感想,那就是把编程当成一门手艺,多练,你看1000次关于for循环的视频,也就是看了1000而已,可能看到多了自己都恶心了,不如自己动手练一次,然后总结一下,做一下知识的输出。
附上代码:
import java.util.Scanner;
import java.io.*;
public class Main {
public static void main(String[] args){
Scanner scan= new Scanner (System.in);
int cost=0;
int surplus=0;
int save=0;
int money=0;
for(int i=1;i<=12;i++){
cost=scan.nextInt();
surplus=300+surplus-cost;
if(surplus<0){
System.out.println(-i);
return ;//这里的renturn
}
else{
save=save+surplus/100;
surplus=surplus%100;
}
}
money=save*120+surplus;
System.out.println(money);
}
}