一.学习过程中我的问题及反思:
1.遇到的问题总是求助同学,不想自己在网上搜索找到解决问题的方法:
多多在网络上搜索遇到难题的解决方法.
2.基础还不够扎实:
基础的算法还不够熟练.得多加练习;不够熟练的使用循环结构
二.收获
收获一.
注释中的代码没能继续从键盘获取数据的原因:
没有在循环结构中创建扫描器的对象,只是在循环体外定义并创建了扫描器对象,循环时并没有用到扫描器中nextInt()方法所以变量不能继续从键盘上获取数据.
之前对其的错误理解:
使用了swich语句中用来判断的变量和与扫描器从键盘获取的变量一致,就会继续返回循环外的 int num= input.nextInt(); 从而继续获取值.
import java.util.Scanner;
public class Text5{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String a1 = "T恤";
String a2 = "网球鞋";
String a3 = "网球拍";
double b1 = 240.0;
double b2 = 570.0;
double b3 = 125.0;
int b = 0;
double d = 0.8;
double f = 0;
String c = "y";
System.out.println("********************************");
System.out.println("请选择购买的商品编号:");
System.out.println("1.T恤\t2.网球鞋\t3.网球拍");
System.out.println("********************************");
while(c.equals("y")){
System.out.print("请输入商品编号:");
int a = input.nextInt();
System.out.print("请输入购买数量:");
b = input.nextInt();
switch(a){
case 1:
System.out.println(a1+"$"+b1+"\t数量:"+b+"\t合计:$"+b*b1);
break;
case 2:
System.out.println(a2+"$"+b2+"\t数量:"+b+"\t合计:$"+b*b2);
break;
case 3:
System.out.println(a3+"$"+b3+"\t数量:"+b+"\t合计:$"+b*b3);
break;
}
System.out.println("是否继续(y/n):");
c = input.next();
}
f = b*b3+b*b2+b*b3;
System.out.println("");
System.out.println("折扣:"+d);
System.out.println("应付金额:"+f);
System.out.print("实付金额:");
double e = input.nextDouble();
System.out.print("找零:"+(e-f*0.8));
}
}
/*import java.util.Scanner;
public class Text5{
public static void main(String[] args){
int productT=245;//T恤价格
int productshoe=570;//网球鞋价格
int productpai=300;//网球拍价格
int yingfu1=0;
int yingfu2=0;
int yingfu3=0;
String judge2 = "y";
System.out.println("************************************");
System.out.println("请选择购买的商品编号");
System.out.println("1.T恤\t\t2.网球鞋\t\t3.网球拍");
System.out.println("************************************");
Scanner input =new Scanner(System.in);
System.out.print("请输入商品编号:");
int code = input.nextInt();
System.out.print("购买数量:");
int num= input.nextInt();
if(code==1){
System.out.println("T恤 Y:"+productT+"\t数量:"+num+"\t合计:"+num*productT);
}
else if(code==2){
System.out.println("网球鞋 Y:"+productshoe+"\t数量:"+num+"\t合计:"+num*productshoe);
}
else if(code==3){
System.out.println("网球拍 Y:"+productpai+"\t数量:"+num+"\t合计:"+num*productpai);
}
while(judge2.equals("y")){
switch(code){
case 1:
yingfu1=num*productT;
break;
case 2:
yingfu2=num*productshoe;
break;
case 3:
yingfu3=num*productpai;
break;
}
System.out.print("折扣:0.8");
int shifu=input.nextInt();
System.out.print("应付金额:"+(shifu-0.8*(yingfu1+yingfu2+yingfu3)));
}
}
*/
收获二:
如果要得到如图:
String s="*";
String xing="*";//xing表示*字符
System.out.print("请输入直角三角形的行数:");
int hang=input.nextInt();
for(int i=0;i<hang;i++){
System.out.println(xing);
xing = xing+s+s;
}我用了类似如此的方法意图将将整型与String型乘2变成如此:"**"
事实上会出现如下图错误;
正确的应用循环结构输出如:
import java.util.Scanner;
public class Text3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入直角三角行的的行数:");
int a = input.nextInt();
for (int i = 1; i <= a; i++) {
System.out.println(" ");
for (int j = 1; j <= a+1-i; j++) {
System.out.print("*");
}
}
}
}