Thursday 23 November 2017
java - Why nextLine is being skipped when using do while loop
Answer
I have to write a program for my class that
takes user input for homework,labs,tests,etc,puts them in a string, and there is a
separate class that splits them in separate "double"numbers and contains a writeToFile
method to write the student's grade into a file.
I keep getting a problem though.. When I ask
the user for their name the first time, it works fine, but if the user decides to enter
the do-while loop again, the "What is your name" is skipped and it goes straight to id.
I know it has something to do with the last input not being a string, and the solution
to that is to put a "keyboard.nextLine();" above the question, but I tried that and it
just asks the user for their name before the question is even
asked..
import java.util.Scanner;
import java.io.*;
import
java.text.DecimalFormat;
public class
GradeApplication
{
public static void main(String[]
args) throws IOException
{
Scanner keyboard = new
Scanner(System.in);
//Define variables
String
name;
int id;
String homework;
String
labs;
String tests;
double project;
double
discussion;
int answer;
do
{
System.out.print("\nWhat is your name? ");
name=keyboard.nextLine();
System.out.print("\nWhat is
your student ID? ");
id=keyboard.nextInt();
homework =
keyboard.nextLine();
System.out.println("\nPlease enter homework grades
separated by spaces:");
homework = keyboard.nextLine();
System.out.println("Please enter lab grades separated by spaces:");
labs =
keyboard.nextLine();
System.out.println("Please enter
test grades separated by spaces:");
tests =
keyboard.nextLine();
System.out.println("Please enter project
grade:");
project = keyboard.nextDouble();
System.out.println("Please enter discussion grade:");
discussion =
keyboard.nextDouble();
System.out.println("\nResults:
");
//Call toString method
Student_Khazma s = new
Student_Khazma(name,id,homework,labs,tests,project,discussion);
System.out.print(s.toString());
//Open file
PrintWriter outputFile= new PrintWriter("gradeReport.txt");
System.out.println(s.writeToFile());
outputFile.close();
System.out.print("\n\nWould you like to see
your grade report again? (1 is yes, 2 is no): ");
answer=keyboard.nextInt();
System.out.print("\n\nWould you like to
see your grade report again? (1 is yes, 2 is no): ");
answer=keyboard.nextInt();
}while(answer==1);
}
}
php - file_get_contents shows unexpected output while reading a file
I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...
-
I have an app which needs a login and a registration with SQLite. I have the database and a user can login and register. But i would like th...
-
I would like to use enhanced REP MOVSB (ERMSB) to get a high bandwidth for a custom memcpy . ERMSB was introduced with the Ivy Bridge micro...
-
According to my understanding, and my calculator, cos(90 degrees) equals 0 . In my code, I have a funct...
No comments:
Post a Comment