Çözüldü "A cannot be resolved to a variable" hatası

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

AntenioTR

Decapat
Katılım
2 Aralık 2022
Mesajlar
31
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar kodlamaya yeni başladım nerede hata yapıyorum?


----------------- Kodlar -------------------
Java:
import java.util.Scanner;

public class Merkez {

    public static void main(String[] args) {
         
          Scanner scanner = new Scanner(System.in);
         
      
            System.out.print("Ekinin adini giriniz: ");
            String ekinadi = scanner.nextLine();
            System.out.print("Tohum fiyatini giriniz: ");
            Integer tohum = scanner.nextInt();
            System.out.print("Satis fiyatini giriniz: ");
            Integer satis = scanner.nextInt();
            System.out.print("Ekilecek alani giriniz: ");
            Integer alan = scanner.nextInt();
        
            System.out.println("****Hizli ek gubresi seciniz***");
            System.out.println("1 -> Gubre yok");
            System.out.println("2 -> Ekin olusumunu kamcilar. Yetisme hizini %10 arttirir");
            System.out.println("3 -> Ekin olusumunu kamcilar. Yetisme hizini %25 arttirir");
            System.out.println("4 -> Ekin olusumunu kamcilar. Yetisme hizini %33 arttirir");
        
            System.out.print("Secimininizi giriniz(Rakam olarak): ");
            Integer secimgubre = scanner.nextInt();
         
            if(secimgubre == 1) {
                int gubre = 1;
            }
            
            else if(secimgubre == 2) {
                double gubre = 1.1;

        }
            else if(secimgubre == 3) {
                double gubre = 1.25;

        }
            else if(secimgubre == 4) {
                double gubre = 1.33;

        }
            System.out.println(gubre);
    }
}
 
Son düzenleyen: Moderatör:
Çözüm
System.out.println(gubre); kısmını if statementlarının içine alın. Öteki türlü gubre değişkenini tanımlayamıyor. Şu şekilde yani:

Java:
import java.util.Scanner;

public class Merkez{

 public static void main(String[] args) {

 Scanner scanner = new Scanner(System.in);

 System.out.print("Ekinin adini giriniz: ");
 String ekinadi = scanner.nextLine();
 System.out.print("Tohum fiyatini giriniz: ");
 Integer tohum = scanner.nextInt();
 System.out.print("Satis fiyatini giriniz: ");
 Integer satis = scanner.nextInt();
 System.out.print("Ekilecek alani giriniz: ");
 Integer alan = scanner.nextInt();

 System.out.println("****Hizli ek gubresi seciniz***");
 System.out.println("1 -> Gubre yok");
 System.out.println("2 -> Ekin olusumunu kamcilar. Yetisme hizini %10 arttirir");
 System.out.println("3 -> Ekin olusumunu kamcilar. Yetisme hizini %25 arttirir");
 System.out.println("4 -> Ekin olusumunu kamcilar. Yetisme hizini %33 arttirir");

 System.out.print("Secimininizi giriniz(Rakam olarak): ");
 Integer secimgubre = scanner.nextInt();

 if(secimgubre == 1) {
 int gubre = 1;
 System.out.println(gubre);
 }

 else if(secimgubre == 2) {
 double gubre = 1.1;
 System.out.println(gubre);
 }

 else if(secimgubre == 3) {
 double gubre = 1.25;
 System.out.println(gubre);
 }

 else if(secimgubre == 4) {
 double gubre = 1.33;
 System.out.println(gubre);
 }
 }
}

Ben bu şekilde çözdüm. Ben de Java'da epey yeniyim, belki başka bir olayı olabilir.

Değeri tek seferde yazdırılabilir hocam. İf else yerine Switch-Case kullanması gerekir bu yapı için.

Ek olarak her if içinde değişken tanımlamak yerine global alana bir tane double değişken tanımlaması yeterli.

Bu şekilde olmalı;
Java:
import java.util.Scanner;

public class Merkez{

    public static void main(String[] args) {

            Scanner scanner = new Scanner(System.in);

            System.out.print("Ekinin adini giriniz: ");
            String ekinadi = scanner.nextLine();
            System.out.print("Tohum fiyatini giriniz: ");
            Integer tohum = scanner.nextInt();
            System.out.print("Satis fiyatini giriniz: ");
            Integer satis = scanner.nextInt();
            System.out.print("Ekilecek alani giriniz: ");
            Integer alan = scanner.nextInt();

            System.out.println("****Hizli ek gubresi seciniz***");
            System.out.println("1 -> Gubre yok");
            System.out.println("2 -> Ekin olusumunu kamcilar. Yetisme hizini %10 arttirir");
            System.out.println("3 -> Ekin olusumunu kamcilar. Yetisme hizini %25 arttirir");
            System.out.println("4 -> Ekin olusumunu kamcilar. Yetisme hizini %33 arttirir");

            System.out.print("Secimininizi giriniz(Rakam olarak): ");
            Integer secimgubre = scanner.nextInt();

            double gubre = 0;

            switch(secimgubre){
         
               case 1:
               gubre = 1;
               break;

               case 2:
               gubre = 1.1;
               break;

               case 3:
               gubre = 1.25;
               break;

               case 4:
               gubre = 1.33;
               break;

            }

            System.out.println(gubre);
      }
}
System.out.println(gubre); kısmını if statementlarının içine alın. Öteki türlü gubre değişkenini tanımlayamıyor. Şu şekilde yani:

Java:
import java.util.Scanner;

public class Merkez{

    public static void main(String[] args) {

            Scanner scanner = new Scanner(System.in);

            System.out.print("Ekinin adini giriniz: ");
            String ekinadi = scanner.nextLine();
            System.out.print("Tohum fiyatini giriniz: ");
            Integer tohum = scanner.nextInt();
            System.out.print("Satis fiyatini giriniz: ");
            Integer satis = scanner.nextInt();
            System.out.print("Ekilecek alani giriniz: ");
            Integer alan = scanner.nextInt();

            System.out.println("****Hizli ek gubresi seciniz***");
            System.out.println("1 -> Gubre yok");
            System.out.println("2 -> Ekin olusumunu kamcilar. Yetisme hizini %10 arttirir");
            System.out.println("3 -> Ekin olusumunu kamcilar. Yetisme hizini %25 arttirir");
            System.out.println("4 -> Ekin olusumunu kamcilar. Yetisme hizini %33 arttirir");

            System.out.print("Secimininizi giriniz(Rakam olarak): ");
            Integer secimgubre = scanner.nextInt();

            if(secimgubre == 1) {
                int gubre = 1;
                System.out.println(gubre);
            }

            else if(secimgubre == 2) {
                double gubre = 1.1;
                System.out.println(gubre);
            }

            else if(secimgubre == 3) {
                double gubre = 1.25;
                System.out.println(gubre);
            }

            else if(secimgubre == 4) {
                double gubre = 1.33;
                System.out.println(gubre);
            }
      }
}

Ben bu şekilde çözdüm. Ben de Java'da epey yeniyim, belki başka bir olayı olabilir.
 
System.out.println(gubre); kısmını if statementlarının içine alın. Öteki türlü gubre değişkenini tanımlayamıyor. Şu şekilde yani:

Java:
import java.util.Scanner;

public class Merkez{

 public static void main(String[] args) {

 Scanner scanner = new Scanner(System.in);

 System.out.print("Ekinin adini giriniz: ");
 String ekinadi = scanner.nextLine();
 System.out.print("Tohum fiyatini giriniz: ");
 Integer tohum = scanner.nextInt();
 System.out.print("Satis fiyatini giriniz: ");
 Integer satis = scanner.nextInt();
 System.out.print("Ekilecek alani giriniz: ");
 Integer alan = scanner.nextInt();

 System.out.println("****Hizli ek gubresi seciniz***");
 System.out.println("1 -> Gubre yok");
 System.out.println("2 -> Ekin olusumunu kamcilar. Yetisme hizini %10 arttirir");
 System.out.println("3 -> Ekin olusumunu kamcilar. Yetisme hizini %25 arttirir");
 System.out.println("4 -> Ekin olusumunu kamcilar. Yetisme hizini %33 arttirir");

 System.out.print("Secimininizi giriniz(Rakam olarak): ");
 Integer secimgubre = scanner.nextInt();

 if(secimgubre == 1) {
 int gubre = 1;
 System.out.println(gubre);
 }

 else if(secimgubre == 2) {
 double gubre = 1.1;
 System.out.println(gubre);
 }

 else if(secimgubre == 3) {
 double gubre = 1.25;
 System.out.println(gubre);
 }

 else if(secimgubre == 4) {
 double gubre = 1.33;
 System.out.println(gubre);
 }
 }
}

Ben bu şekilde çözdüm. Ben de Java'da epey yeniyim, belki başka bir olayı olabilir.

Değeri tek seferde yazdırılabilir hocam. İf else yerine Switch-Case kullanması gerekir bu yapı için.

Ek olarak her if içinde değişken tanımlamak yerine global alana bir tane double değişken tanımlaması yeterli.

Bu şekilde olmalı;
Java:
import java.util.Scanner;

public class Merkez{

    public static void main(String[] args) {

            Scanner scanner = new Scanner(System.in);

            System.out.print("Ekinin adini giriniz: ");
            String ekinadi = scanner.nextLine();
            System.out.print("Tohum fiyatini giriniz: ");
            Integer tohum = scanner.nextInt();
            System.out.print("Satis fiyatini giriniz: ");
            Integer satis = scanner.nextInt();
            System.out.print("Ekilecek alani giriniz: ");
            Integer alan = scanner.nextInt();

            System.out.println("****Hizli ek gubresi seciniz***");
            System.out.println("1 -> Gubre yok");
            System.out.println("2 -> Ekin olusumunu kamcilar. Yetisme hizini %10 arttirir");
            System.out.println("3 -> Ekin olusumunu kamcilar. Yetisme hizini %25 arttirir");
            System.out.println("4 -> Ekin olusumunu kamcilar. Yetisme hizini %33 arttirir");

            System.out.print("Secimininizi giriniz(Rakam olarak): ");
            Integer secimgubre = scanner.nextInt();

            double gubre = 0;

            switch(secimgubre){
         
               case 1:
               gubre = 1;
               break;

               case 2:
               gubre = 1.1;
               break;

               case 3:
               gubre = 1.25;
               break;

               case 4:
               gubre = 1.33;
               break;

            }

            System.out.println(gubre);
      }
}
 
Son düzenleyen: Moderatör:
Çözüm
Değeri tek seferde yazdırılabilir hocam. İf else yerine Switch-Case kullanması gerekir bu yapı için.

Ek olarak her if içinde değişken tanımlamak yerine global alana bir tane double değişken tanımlaması yeterli.

Bu şekilde olmalı;
Java:
import java.util.Scanner;

public class Merkez{

    public static void main(String[] args) {

            Scanner scanner = new Scanner(System.in);

            System.out.print("Ekinin adini giriniz: ");
            String ekinadi = scanner.nextLine();
            System.out.print("Tohum fiyatini giriniz: ");
            Integer tohum = scanner.nextInt();
            System.out.print("Satis fiyatini giriniz: ");
            Integer satis = scanner.nextInt();
            System.out.print("Ekilecek alani giriniz: ");
            Integer alan = scanner.nextInt();

            System.out.println("****Hizli ek gubresi seciniz***");
            System.out.println("1 -> Gubre yok");
            System.out.println("2 -> Ekin olusumunu kamcilar. Yetisme hizini %10 arttirir");
            System.out.println("3 -> Ekin olusumunu kamcilar. Yetisme hizini %25 arttirir");
            System.out.println("4 -> Ekin olusumunu kamcilar. Yetisme hizini %33 arttirir");

            System.out.print("Secimininizi giriniz(Rakam olarak): ");
            Integer secimgubre = scanner.nextInt();

            double gubre;

            switch(secimgubre){
     
               case 1:
               gubre = 1;
               break;

               case 2:
               gubre = 1.1;
               break;

               case 3:
               gubre = 1.25;
               break;

               case 4:
               gubre = 1.33;
               break;

            }

            System.out.println(gubre);
      }
}
Öncelikle teşekkürler, ben sondaki print kısmını örnek olarak yazdım. Kullanıcıdan aldığım seçime göre ileride o değeri yetişme süresiyle çarpıp gübre türüne göre yeni yetişme süresini belirlemek istiyorum. Sizin yaptığınız şekilde kullanırsam olur mu? Mesela:

Java:
import java.util.Scanner;



public class Merkez {



    public static void main(String[] args) {

          

          Scanner scanner = new Scanner(System.in);

          

        

            System.out.print("Ekinin adini giriniz: ");

            String ekinadi = scanner.nextLine();

            System.out.print("Tohum fiyatini giriniz: ");

            Integer tohum = scanner.nextInt();

            System.out.print("Satis fiyatini giriniz: ");

            Integer satis = scanner.nextInt();

            System.out.print("Ekilecek alani giriniz: ");

            Integer alan = scanner.nextInt();

            System.out.print("Yetisme suresi giriniz ");

            Integer yetismesuresi = scanner.nextInt();

          

            System.out.println("****Hizli ek gubresi seciniz***");

            System.out.println("1 -> Gubre yok");

            System.out.println("2 -> Ekin olusumunu kamcilar. Yetisme hizini %10 arttirir");

            System.out.println("3 -> Ekin olusumunu kamcilar. Yetisme hizini %25 arttirir");

            System.out.println("4 -> Ekin olusumunu kamcilar. Yetisme hizini %33 arttirir");

          

            System.out.print("Secimininizi giriniz(Rakam olarak): ");

            Integer secimgubre = scanner.nextInt();

          

            if(secimgubre == 1) {

                int gubre = 1;

            }

              

            else if(secimgubre == 2) {

                double gubre = 0.9;



        }

            else if(secimgubre == 3) {

                double gubre = 0.75;



        }

            else if(secimgubre == 4) {

                double gubre = 0.66;



        }

            System.out.println(yetismesuresi*gubre);

    }

}
 
Son düzenleyen: Moderatör:

Technopat Haberler

Geri
Yukarı