Исправлено (новый рабочий код ниже). Я сталкиваюсь с небольшой проблемой, которую не могу понять. Первый do-while работает как задумано и будет проходить до тех пор, пока не получит действительный ввод. Тем не менее, второй цикл закончится независимо от того, введу я правильный или неправильный #. И затем в 3-м цикле я получаю 2 ошибки:
Я не уверен, почему я получаю эти ошибки, когда переменные уже были объявлены?
Немногообъяснение того, что я пытаюсь сделать:
Я должен получить 3 входа: годы опыта (yearsexp), производительность (производительность) и случайное значение типа int, сгенерированное между 1-10 (уровень). Программа спросит пользователя об их опыте, если между 3-11 они квалифицированы. Если нет, он скажет им, что они не являются квалифицированными и попросит повторно ввести значение. То же самое с производительностью. Если они вводят число, меньшее или равное 11, оно будет генерировать случайное значение int (уровень), на котором уровень точки будет использоваться для оценки их бонуса.
import java.util.Scanner;
import java.util.Random;
class assignment {
public static void main( String args[]){
//
int bonus;
int x;
//
Random rand = new Random();
//
Scanner input = new Scanner(System.in); // scanner for name
System.out.println("Enter your name: "); // ask for name
String name = input.nextLine(); // assign name to variable
System.out.println( name ); // output name
//
Scanner input2 = new Scanner(System.in); // scanner for yearsexp
System.out.println(name + ", Enter the years of your experience: "); // ask for yearsexp
int yearsexp = 0 ;
int performance = 0;
do
{
yearsexp = input2.nextInt(); // assign yearsexp to variable
System.out.println( yearsexp); // out yearsexp
try
{
if (yearsexp >= 3 && yearsexp <24)// acceptable critera
{
System.out.println("You are qualified");// output
x=2; // x = 2 to close do while
}
else
{
throw new Exception ();
}
}
catch (Exception e1)
{
System.out.println("You have entered an invalid number! Try again..."); //output is unacceptable
x=1;
}
}
while (x==1); // keep do loop going if exception e
//
Scanner input3 = new Scanner(System.in); // scanner for performance
System.out.println(name + ", Enter the performance: "); // ask for performance
//
do
{
performance = input3.nextInt(); // assign performance to variable
System.out.println( performance ) ; // output performance
try
{
if (performance <= 11) // acceptable criteria
{
System.out.println("You are qualified"); //output
x=2; // x = 2 to close do while
}
else
{
throw new Exception ();
}
}
catch (Exception e2)
{
System.out.println("You have entered an invalid number! Try again..."); //output if criteria is unacceptable
x=1;
}
}
while (x==1); // keep doing while
//
int level = rand.nextInt(11); // fix to be between 1-10 to not include 0
System.out.println("Random Level: " + level); //output level
//
do
{
try
{
if (level >=5 && level <=8)//acceptable criteria
{
System.out.println("Expected Bonus: $5000.00"); //output
x = 2; // x = 2 to close while
}
else if (level <= 4) // else if criteria
{
bonus = 5000 * yearsexp * performance * level; // calculate bonus if level <=4
System.out.println(bonus); // output bonus
if (bonus < 15000)
{
System.out.println(bonus);
}
else if (bonus > 15000)
{
System.out.println("Your bonus is TBL");
{
x = 2; // x = 2 to close while
}
}
}
}
catch (Exception e3)
{
System.out.println("You do not get a bonus"); //output if criteria is unacceptable
x=1;
}
}
while (x==1);
}
}