for循环中的语句只执行一次 import java.util.Scanner; 公开课考试{ 公共静态void main(字符串参数[]){ 字符串名称=”,n; 双r,h,s,m=0; INTC; 扫描器i=新扫描器(System.in); 员工e[]=新员工[5]; 对于(int j=0;j
因此,你应该在每个案例之后添加一个中断 我建议使用println而不是printf,它将允许您使用更少的“\n”,并使您的代码更有条理 <>你使用java,就像C++一样,我认为做起来容易多了。 System.out.println(“请输入员工姓名”+(j+1))for循环中的语句只执行一次 import java.util.Scanner; 公开课考试{ 公共静态void main(字符串参数[]){ 字符串名称=”,n; 双r,h,s,m=0; INTC; 扫描器i=新扫描器(System.in); 员工e[]=新员工[5]; 对于(int j=0;j,java,loops,for-loop,java.util.scanner,Java,Loops,For Loop,Java.util.scanner,因此,你应该在每个案例之后添加一个中断 我建议使用println而不是printf,它将允许您使用更少的“\n”,并使您的代码更有条理 你使用java,就像C++一样,我认为做起来容易多了。 System.out.println(“请输入员工姓名”+(j+1)) 如果没有其他的源代码,帮助您是有点困难的。问题是,在第二个循环中n=i.nextLine(),因为扫描仪s缓冲区中仍有内容行,您需要清除扫描仪 你可以添加一些类似于 import java.util.Scanner; public c
如果没有其他的源代码,帮助您是有点困难的。问题是,在第二个循环中
n=i.nextLine()已跳过代码>,因为扫描仪
s缓冲区中仍有内容行,您需要清除扫描仪
你可以添加一些类似于
import java.util.Scanner;
public class Test {
public static void main(String args[]) {
String name = " ", n;
double r, h, s, m = 0;
int c;
Scanner i = new Scanner(System.in);
Employee e[] = new Employee[5];
for (int j = 0; j < 5; j++) {
System.out.printf("\nPlease enter the name of Employee %d ", j + 1);
/* THE PROBLEM LIES IN THE ABOVE STATEMENT IT IS EXECUTED ONLY ONCE WHILE IT'S MEANT TO BE EXECUTED 5 TIMES */
n = i.nextLine();
System.out.print("\t1.PartTime\n\t2.FullTime\n");
c = i.nextInt();
switch (c) {
case 1:
System.out.print("hours worked ");
h = i.nextDouble();
System.out.print("rate per hour ");
r = i.nextDouble();
e[j] = new Part(n, h, r);
break;
case 2:
System.out.print("Salary ");
s = i.nextDouble();
e[j] = new Full(n, s);
break;
default:
System.out.print("\n***INVALID*** ");
j--;
}
}
}
}
例如,到循环的末尾
if (i.hasNextLine()) {
i.nextLine();
}
for(int j=0;j<5;j++){
System.out.printf(“\n请输入员工%d的姓名”,j+1);
/*问题在于上面的语句只执行了一次,而应该执行5次*/
n=i.nextLine();
System.out.print(“\t1.兼职\n\t2.全职\n”);
c=i.nextInt();
开关(c){
案例1:
系统打印(“工作时间”);
h=i.nextDouble();
系统输出打印(“每小时费率”);
r=i.nextDouble();
e[j]=新零件(n,h,r);
打破
案例2:
系统打印(“工资”);
s=i.nextDouble();
e[j]=新的完整(n,s);
打破
违约:
系统输出打印(“\n***无效***”);
j--;
}
if(i.hasNextLine()){
i、 nextLine();
}
}
这将确保扫描器
没有以前输入的其他内容只是好奇:您希望通过编写所有大写的句子来实现什么?系统。默认情况下,out
在换行符上刷新。你的很多指纹可能都没有冲洗。@Braj中断是因为开关状态,它按预期工作。分享实际代码。Swing是如何涉及的?
for (int j = 0; j < 5; j++) {
System.out.printf("\nPlease enter the name of Employee %d ", j + 1);
/* THE PROBLEM LIES IN THE ABOVE STATEMENT IT IS EXECUTED ONLY ONCE WHILE IT'S MEANT TO BE EXECUTED 5 TIMES */
n = i.nextLine();
System.out.print("\t1.PartTime\n\t2.FullTime\n");
c = i.nextInt();
switch (c) {
case 1:
System.out.print("hours worked ");
h = i.nextDouble();
System.out.print("rate per hour ");
r = i.nextDouble();
e[j] = new Part(n, h, r);
break;
case 2:
System.out.print("Salary ");
s = i.nextDouble();
e[j] = new Full(n, s);
break;
default:
System.out.print("\n***INVALID*** ");
j--;
}
if (i.hasNextLine()) {
i.nextLine();
}
}